python - 与具有相同反向访问器的同一模型的一对一和一对多关系
问题描述
我有一个与 OrderDate 模型具有一对多关系的订单模型。现在我想在订单上有一个名为“chosen_date”的附加字段,与同一个 OrderDate 模型具有一对一的关系。问题是我在 OrderDate 的关系都有名称“订单”,这会发生冲突。如何在 OrderDate 模型上不添加像“Order_2”这样的新字段来解决这个问题?
这是我的模型:
class Order(TimeStampedModel):
chosen_date = models.OneToOneField('OrderDate', on_delete=models.CASCADE, blank=True, null=True)
class OrderDate(TimeStampedModel):
order = models.ForeignKey(Order, related_name='dates', on_delete=models.CASCADE)
date = models.DateField()
morning = models.BooleanField(default=False)
noon = models.BooleanField(default=False)
evening = models.BooleanField(default=False)
解决方案
您related_name
为指定OneToOneField
:
class Order(TimeStampedModel):
chosen_date = models.OneToOneField(
'OrderDate',
related_name='order_picked',
on_delete=models.CASCADE,
blank=True,
null=True
)
推荐阅读
- javascript - 如何遍历可滚动div的内容?
- perl - Perl:if else 条件卡在 elsif 上
- javascript - 在 Javascript 中,readFile 方法返回一个空数组,但是当控制台日志数据显示在控制台中时
- django - 如何使用同一模型中其他字段的数据自动填充数据库字段
- python - 拟合 ColumnTransformer 时出现 ValueError
- python - 讨论 Leetcode 问题作业计划最小难度的更好方法
- javascript - 如何在 Web 组件 java 脚本中将数字转换为其各自的字母
- javascript - 崇高文本中jsx的语法高亮错误
- java - Java Apache FTPClient 大多数下载的文件为空或丢失
- vhdl - VHDL:这两个是等价的吗?