我首先将数据填入postgreSQL而没有输入外键。
这是我的models.py
class BeverageMenu(models.Model):
brand = models.CharField(max_length=255, null=True)
area = models.CharField(max_length=50, blank=True, null=True)
class DMenu(models.Model):
dmenu = models.ForeignKey(BeverageMenu,null=True,blank=True)
category = models.CharField(max_length=255, null=True)
product = models.CharField(max_length=255, null=True)
我用这种方式来更新外键:
>>> from psql.models import BeverageMenu,DMenu
>>> menu1 = BeverageMenu.objects.get(id=1)
>>>product = DMenu.objects.filter(area='North')
>>>product.update(dmenu=menu1)
我想知道我可以直接使用SQL来做这件事吗?
我试试这个但是失败了
INSERT INTO psql_dmenu(category,product,dmenu) VALUES ('hot','soup',1),
ERROR: column "dmenu" of relation "psql_dmenu" does not exist
答案 0 :(得分:1)
你可以,但你为什么要这样? Django有一个模型层,原因是为了使数据库更容易处理,更少依赖SQL。
但是,对于您的问题,问题是ForeignKey的基础数据库列包含前缀_id:所以您的字段为dmenu_id
。