python - Django模型如何做多对一映射?
问题描述
我正在尝试将多个字段映射到供应商和菜单类中的同一字段。如果我使用如下所示的外键进行映射,它可以工作。但这不是我想要的。
class OrderItem_Mon(models.Model):
vendor_name = models.ForeignKey(Vendor, on_delete=models.SET_NULL, null=True)
menu_name = models.ForeignKey(Menu, on_delete=models.SET_NULL, null=True)
date_created = models.DateTimeField('date created', auto_now_add=True)
note = models.CharField('note', max_length=255, null=True, blank=True)
我需要像这样将多个字段映射到特定表的同一字段。
class OrderItem_Mon(models.Model):
vendor_name_1 = models.ForeignKey(Vendor, db_column='vendor_name', on_delete=models.SET_NULL, null=True)
menu_name_1 = models.ForeignKey(Menu, db_column='menu_name',on_delete=models.SET_NULL, null=True)
vendor_name_2 = models.ForeignKey(Vendor, db_column='vendor_name',on_delete=models.SET_NULL, null=True)
menu_name_2 = models.ForeignKey(Menu, db_column='menu_name', on_delete=models.SET_NULL, null=True)
date_created = models.DateTimeField('date created', auto_now_add=True)
note = models.CharField('note', max_length=255, null=True, blank=True)
但是,它不起作用。我该如何进行这项工作?基本上,我需要制作具有从供应商和菜单模型到每个字段的价值的保管箱的新表单。帮助
解决方案
您需要为外键模型字段添加related_name 属性并给出不同的名称。
该错误是由于同一模型用作多个字段的外键。因此,它在迁移过程中产生了问题。只是设置不同的 .related_name 不会有任何问题。
推荐阅读
- php - Joomla 3.8 与 PHP 7 问题
- scala - 如何在迭代中发出定期结果?
- mongodb - MongoDB 找到文档但相同的更新查询更新了 0 条记录
- angular - 如何在模块之间共享自定义验证器
- r - R 中 data.frame() 中用于停止自动更改列名的参数
- genetic-algorithm - 人工生命中复制子的自发出现
- batch-file - 如何提取 PC 的 IP(仅限 Wifi 适配器)并通过批处理文件将其设置为变量?
- bash - 在詹金斯中运行脚本发布成功构建
- java - 以函数式风格将 Optional 转换为布尔值
- python - Django - 如何使用 Stripe 在我的平台上管理用户之间的自定义付款?