Django 数据库多字段同时关联一个表为外键的解决办法


多个字段对应一个外键时,会报错,如:

 1 class Storehouse_list(models.Model):#库位列表
 2     nid = models.AutoField(primary_key=True)
 3     title = models.CharField(max_length=32)#仓库名称
 4 
 5 class Storehouse_change(models.Model):#调库单
 6     nid = models.AutoField(primary_key=True)
 7     matter = models.ForeignKey(to='Matter_list',to_field='nid',on_delete=models.CASCADE)#物料名称
 8     number = models.IntegerField#数量
 9     storehouse_in = models.ForeignKey(verbose_name='出仓仓库',to='Storehouse_list',to_field='nid',on_delete=models.CASCADE)#物料所调入的仓库
10     storehouse_out = models.ForeignKey(verbose_name='入仓仓库',to='Storehouse_list',to_field='nid',on_delete=models.CASCADE)#物料调出的仓库
11     create_date = models.DateTimeField(verbose_name="创建时间", auto_now_add=True)
12     create_user = models.ForeignKey(to="UserInfo",to_field="nid",on_delete=models.CASCADE)#操作员

同时外键关联库位列表,会报错。

解决办法:给models.ForeignKey()加入related_name参数,定义不同的关联名称,如修改上面代码中的storehouse_in和storehouse_out即可解决问题:

1 storehouse_in = models.ForeignKey(verbose_name='出仓仓库',to='Storehouse_list',to_field='nid',related_name="出仓仓库",on_delete=models.CASCADE)#物料所调入的仓库
2 storehouse_out = models.ForeignKey(verbose_name='入仓仓库',to='Storehouse_list',to_field='nid',related_name="入仓仓库",on_delete=models.CASCADE)#物料调出的仓库

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM