我试图更新一个模型,有两个主键。在
由于django没有正式支持它,所以我使用了变通方法:
class myModel(models.Model):
class Meta:
unique_together = (('key1', 'key2'),)
key1= models.IntegerField(blank=False, primary_key=True)
key2= models.CharField(blank=False, max_length=30)
attr3 = models.CharField(max_length=30)
attr4 = models.CharField(max_length=30)
但每当我试图更新现有对象时,都会出现以下错误:
^{pr2}$我尝试了以下方法来更新我的模型:
myModel.objects.update_or_create(
key1=kw1,
key2= kw2,
defaults={
'attr3':attr3_str,
'attr4':attr4_str,
})
以及以下内容:
defaults={
'attr3':attr3_str
'attr4':attr4_str,
}
try:
obj = myModel.objects.get(key1=kw1, key2=kw2)
for key, value in defaults:
settatr(obj, key, value)
obj.save()
except myModel.DoesNotExist:
print("DOESNT EXISIT")
new_values = {'key1': kw1, 'key2': kw2}
new_values.update(defaults)
obj = myModel(**new_values)
obj.save()
有什么办法可以更新我的模型而不出现完整性错误吗?在
我不知道这个问题的原因是什么
与
^{pr2}$谢谢你的帮助!在
相关问题 更多 >
编程相关推荐