2016-11-25 11 views
0

別のModelフィールドから生成された 'Dynamic Choices'はどのように使用できますか?コード/タプルを編集せずにcolorというフィールドに新しい選択肢を追加したいと思います。以下の例は私がすでに試したことを示していますが、この例では「選択肢」はモデルが使用されることを期待していないので、これはうまくいきません!これが可能なのでしょうかもしあれば、最良のアプローチは何でしょうか?DjangoのModelフィールドを使用してDynamic Choiceフィールドを設定するには

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


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

興味のあるモデルのFKではなく、ユーザーが追加の選択肢を追加できるようにする機能です。

+0

を。 –

+0

私のOPが更新されました。ユーザーが家具の色に追加の選択肢を追加できるようにすることについては、実際には – MrKnotts

+0

です。新しい色を追加するだけでなく、選択肢から色を選択できるように複数の色を 'Furniture'インスタンスに関連付けるには彼らが望む色が現在の選択肢では利用できない場合。あなたの問題を正しく解決していますか? –

答えて

0

ForeignKeyでこれを行うことができます。

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


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

それとも、このような何か行うことができます:あなたは別の `Color`モデルを作成し、` Furniture`モデルで外部キーとして追加することができます

class FurnitureChoices(models.Model): 
    COLOR_CHOICES = (
     ('R', 'Red'), 
     ('B', 'Blue'), 
    ) 
    color = models.CharField(max_length=1, choices=COLOR_CHOICES) 
関連する問題