如何为已保存在django中的记录中的列添加值

时间:2013-06-21 06:25:23

标签: python sql database django aptana

我正在尝试将数据保存到列中,但该记录已保存。我正在使用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

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

2 个答案:

答案 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()