Django bir birincil anahtar özniteliğinde .save() çalıştırdığında, önce var olup olmadığını görmek için önce bir SELECT yapar, sonra bir INSERT veya UPDATE yapıp yapmayacağınıza karar verir. Benzersiz değil, birincil anahtar alan için de aynısını aynen yapmanın bir yolu var mı?Oluşturmadan önce benzersiz bir değer olup olmadığını kontrol edin
Temelde, modeli aşağıdaki gibiyse:
class Subject(models.Model):
name = models.CharField(max_length=64, unique=True)
ben 'adını' pk, yapabiliriz,
>>> s=Subject(name="A new subject")
>>> s.save()
>>> s
<Subject: A subject>
>>> s=Subject(name="A new subject")
>>> s.save()
--- django.db.utils.IntegrityError: column name is not unique
Tersine bir hata atma olmadan aşağıdakileri yapmak isteyebilirsiniz ama Pk olmayan benzersiz otomatik artışlı kimlikler yapmak için zarif bir Django yolu emin değildim.
Herhangi bir yardım için teşekkür ederiz. Teşekkür ederim!
Ama model yöneticisini kullanmak için [denemeyin] (https://docs.djangoproject.com/en/dev/topics/db/queries/#retrieving-objects) ('self.objects.filter .. .') model örneğinden. Subject.objects.filter ... 'i yapmak zorundasınız – hobs