0

我正在尝试将数据保存到列中,但该记录已保存。我正在使用 django 和 sql

模型.py

class P(models.Model):
   t=models.ForeignKey(T)
   q=models.TextField(max_length=500)
   c_a=models.IntegerField(null=True)

我在 models.py 中有其他类

视图.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

但是这段代码似乎不起作用。我做错了吗?

4

2 回答 2

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字段的任何原因是什么?

于 2013-06-21T06:52:23.483 回答
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 未定义(范围已过期)

使用找到 P_objectobjects.get并再次保存。

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()
于 2013-06-21T07:03:34.453 回答