簡體   English   中英

自動填充Django模型字段

[英]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.nameorder.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM