Saya punya model
class Survey(models.Model):
created_by = models.ForeignKey(User)
question = models.CharField(max_length=150)
active = models.NullBooleanField()
def __unicode__(self):
return self.question
dan sekarang saya hanya ingin memperbarui active
bidang. Jadi saya melakukan ini:
survey = get_object_or_404(Survey, created_by=request.user, pk=question_id)
survey.active = True
survey.save(["active"])
Sekarang saya mendapatkan kesalahan IntegrityError: PRIMARY KEY must be unique
.
Apakah saya benar dengan metode pembaruan ini?
sumber
.get
alih - alih.filter
dan ini tidak berhasil. Tetapi dengan filter itu berfungsi dengan baik. Tahukah Anda apa yang salah dengan kode saya di atas?question_id
. Dari mana asalnya nilai ini? Dan baris mana yang menaikkanIntegrityError
?question_id
berasal dari url(?P<question_id>\d+)
. Kesalahan saya adalah bahwa pada server kerja, django 1.4 diinstal dan kode saya 1.5. Tetapi dengan kode Anda, itu berfungsi dengan baik.save()
(@Alasdair solution) adalah solusi yang lebih aman, karena metode ini dapat memicu hal-hal seperti validasi, atau kode kustom apa pun, daripada yangupdate()
tidak.