2013-06-21 67 views
0

我試圖將數據保存到列中但該記錄已保存。我使用Django和SQL如何將值添加到已保存在記錄中的列中django

models.py工作

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

我有其他類

views.py

... 
P_object=P(t_id=T_object.id, q=q) 
P_object.save() 
... 

我在這裏只有兩個省的models.py列和我希望第三列後分別保存,當我從其他記錄獲得一個ID

A_object=A(q_id = q_object.id, a=a) 
A_object.save() 
P_object.c_a = A_object.id 

但是這段代碼似乎不起作用。我做錯了嗎?

回答

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

+0

我想他已經在下面的評論中說過他正在做'P_object.save()'。請參考下面的答案和評論.. –

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() 
+0

你接近給出正確的答案..試着用更多的信息來解釋它..就像那個'T_object'從哪裏來的。 –

相關問題