Django中的动态选择字段

时间:2013-05-14 22:07:28

标签: django django-models django-forms

在此引用Django docs,我已设置以下内容:

Category_Choices = (
    ('Food', (
        ('burger', 'hamburger'),
        ('pizza', 'pizza'),
        ),
    ('Drink', (
        ('soda', 'soda'),
        ('water', 'water'),
        ('milk', 'milk'),
        ('beer', 'beer'),
        ),
    ('Dessert' , (
        ('ic', 'ice cream'),
        ('pie', 'pie'),
        ('cake', 'cake'),
        ),
)

我理解引用一个初始元组:

choice = models.CharField(max_length=10, choices=Category_Choices)

但是我如何将其仅限于食物?如果我有一个选项列表,用户只选择食物,饮料或甜点,我如何将第二个选择列表限制为仅限食物项目,或仅限饮料项目等? Django文档不涉及该部分。提前致谢

1 个答案:

答案 0 :(得分:1)

检查链接的文档会产生此响应:

  

“但是如果你发现你自己选择了动态的选择,你可能最好使用带有ForeignKey的正确数据库表。选择意味着静态数据不会有太大变化,如果有的话。”

选择字段不是为了给出动态行为,即只显示某些选择的子集。

我的建议是创建另一个模型对象以容纳Food列表。