我有点失落。
我想根据同一模型中另一个字段的值,使用另一个Model中的数据自动填充Model字段。
我有2个型号:
class Status(models.Model):
name = models.CharField()
value = models.DecimalField()
class Order(models.Model):
status = models.ForeignKey(Status, to_field="name", related_name='+')
value = models.ForeignKey(Status, to_field="value", related_name='+')
创建Order
时,用户将选择订单的状态(待处理,完成等),并且订单的值应相应地自动填充。也许我累了,但我无法解决这个问题。任何建议都会非常感激。
修改
我对这种结构背后的想法是每个地位都有一个特定的货币价值,即。已完成为20英镑,被放弃为5英镑,待定为0.因此,订单开始为待定,然后将标记为完成或放弃并生成相关值。该值与状态相关联,并应根据订单状态自动更新。
答案 0 :(得分:2)
您在订单中不需要2个字段。在订单模型中,您需要:
b
您可以按status = models.ForeignKey(Status, related_name='+')
和order.status.name
访问姓名和值。
答案 1 :(得分:0)
对于特定情况,您不需要两个型号。您可以使用choice
字段https://docs.djangoproject.com/en/1.8/ref/models/fields/#django.db.models.Field.choices
class Status(models.Model):
STATUS_PENDING = 0
STATUS_COMPLETE = 1
STATUS = (
(STATUS_PENDING, 'Pending'),
(STATUS_COMPLETE, 'Complete'),
name = models.CharField(max_length=30, blank=True)
value = models.DecimalField(max_digits=10, decimal_places=2, default=Decimal(0.0))
status = models.IntegerField(default=0, choices=STATUS)