2016-11-25 97 views
0

如何使用從另一個模型字段生成的「動態選擇」?我想在沒有編輯代碼/元組的情況下爲名爲color的字段添加一個新選項。下面的示例演示了我已經嘗試過的內容,但在本例中的「選擇」並不期望使用模型,因此這種方法無效!這是可能的,如果是這樣,最好的辦法是什麼?如何在Django中使用模型字段設置動態選擇字段

class Furniture(models.Model): 
    color = models.CharField(max_length=50, choices=FurnitureChoices) 


class FurnitureChoices(models.Model): 
     color = models.CharField(max_length=50) 

這不是我所感興趣的模型的FK,而是允許用戶自己添加其他選擇的能力。

+0

您可以創建一個單獨的'Color'模型,並將其添加爲'Furniture'模型的外鍵。 –

+0

更新了我的OP,它真的可以讓用戶自己添加更多的選擇到傢俱顏色 – MrKnotts

+0

因此,您想要將多種顏色關聯到「傢俱」實例,以便用戶可以從選擇中選擇顏色以及添加新顏色如果他們想要的顏色在當前選擇中不可用。我是否正確地解決了您的問題? –

回答

0

你可以用ForeignKey做到這一點。

class Furniture(models.Model): 
    color = models.ForeignKey(FurnitureChoices) 


class FurnitureChoices(models.Model): 
     color = models.CharField(max_length=50) 

或者你也可以做這樣的事情:

class FurnitureChoices(models.Model): 
    COLOR_CHOICES = (
     ('R', 'Red'), 
     ('B', 'Blue'), 
    ) 
    color = models.CharField(max_length=1, choices=COLOR_CHOICES)