Onay self.pk == None
olan değil , nesnenin eklendiğinde veya veritabanında güncellenmiş olacak olup olmadığını belirlemek için yeterli.
Django O / RM, PK konumunda bir şey olup olmadığını kontrol etmek için özellikle kötü bir kesmek içerir ve eğer bir UPDATE yaparsanız, aksi takdirde bir INSERT yapın (PK, None ise bu bir INSERT için optimize edilir).
Bunu yapmasının nedeni, bir nesne oluşturulduğunda PK'yi ayarlamanıza izin verilmesidir. Birincil anahtar için bir dizi sütununa sahip olduğunuz yerde yaygın olmasa da, diğer birincil anahtar alanı türleri için bu geçerli değildir.
Eğer gerçekten bilmek istiyorsanız O / RM ne yapmak zorunda ve veritabanına bakın.
Tabii ki kodunuzda belirli bir durum var ve bunun için self.pk == None
bilmeniz gereken her şeyi size söyleyecek gibi görünüyor , ancak bu genel bir çözüm değil .
UUIDField pk