[英]Auto-populate Django Model field
我有點迷路了。
我想根據同一模型中另一個字段的值,用另一個模型中的數據自動填充一個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。因此,訂單以待處理狀態開始,然后將其標記為已完成或已放棄,並生成相關值。 該值與狀態相關,並且應根據訂單狀態自動更新。
您不需要Order中的2個字段。 在訂單模型中,您需要:
status = models.ForeignKey(Status, related_name='+')
您可以通過order.status.name
和order.status.value
訪問名稱和值。
在特定情況下,您不需要兩個模型。 您可以使用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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.