多個字段對應一個外鍵時,會報錯,如:
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)#物料調出的倉庫
