在下面的代码中,我尝试使用外键连接到表:
models.py
class DailyTestDraft(models.Model):
index = models.AutoField(db_column='Index', primary_key=True) # Field name made lowercase.
gantry = models.IntegerField(db_column='Gantry', null=True)
'.....'
class DailyTestInput(models.Model):
index = models.AutoField(db_column='Index', primary_key=True) # Field name made lowercase.
energyID = models.IntegerField(db_column='energyID',null=True)
'.......'
indexid = models.ForeignKey(DailyTestDraft, on_delete=models.CASCADE, null=True, blank=True, default=None) # Field name made lowercase.
views.py:
form = DailyTestDraft(gantry=3)
form.save()
form2 = DailyTestInput(indexid=form)
form2.save()
我希望表DailyTestInput
将DailyTestDraft
的主键(即index)保存到其外键变量indexid
中。
但是,我得到了错误:
(1054,"Unknown column 'indexid_id' in 'field list'")"
当我把它改成
form2 = DailyTestInput(indexid_id=form)
我得到错误:
"字段" index "需要一个数字,但得到了。"<DailyTestDraft: 58>."
但当我把它改成
form2 = DailyTestInput(indexid_id=form.index)
然后我得到相同的错误1054。
如果我把
form2 = DailyTestInput(indexid=form.index)
然后我得到错误:
无法分配“58”:"DailyTestInput.indexid"必须是"DailyTestDraft"示例。"
对不起所有的选项,但我一直在努力使它在许多方面的工作,我有点失去了它应该如何实现。
1条答案
按热度按时间vmdwslir1#
您的数据库列名与Django的数据库表示不同:
在后台,Django将
"_id"
附加到字段名以创建其数据库列名。您可以通过指定
db_column
来更改此设置: