我正在尝试将数据保存到列中,但该记录已保存。我正在使用django和sql
models.py
class P(models.Model):
t=models.ForeignKey(T)
q=models.TextField(max_length=500)
c_a=models.IntegerField(null=True)
我在models.py
中有其他类views.py
...
P_object=P(t_id=T_object.id, q=q)
P_object.save()
...
这里我只保存了两列,我希望稍后当我从另一条记录中获取id时,可以单独保存第三列
A_object=A(q_id = q_object.id, a=a)
A_object.save()
P_object.c_a = A_object.id
但是这段代码似乎不起作用。我做错了吗?
答案 0 :(得分:0)
“似乎不起作用”就像问题的描述一样无用。你有前两点(“这就是我做的”,“这就是我的期望”),但你错过了第三点:“这就是我得到的”。但无论如何......
A_object=A(q_id = q_object.id, a=a)
A_object.save()
P_object.c_a = A_object.id
修改后,模型实例不会自动保存,您必须自己保存。只需添加
P_object.save()
你应该没事。另外请发布整个追溯。
作为旁注,您不使用models.ForeignKey
字段的原因是什么?
答案 1 :(得分:0)
尝试:
class P(models.Model):
t=models.ForeignKey(T)
q=models.TextField(max_length=500,blank=True)
c_a=models.IntegerField(max_length=30,blank=True,null=True)
如果没有解决问题,则可能是P_object未定义(范围已过期)
使用objects.get
找到P_object并再次保存。
A_object=A(q_id = q_object.id, a=a)
A_object.save()
P_object=P.objects.get(t_id=T_object.id)
P_object.c_a = A_object.id
P_object.save()