2015-06-30 119 views
11

我想在Django models.py中创建一个字段,它将以下拉菜单的形式呈现,用户可以从那里选择选项。在Django模型中的下拉列表

如果我有5种选择:

  • GREEN
  • BLUE
  • RED
  • ORANGE
  • BLACK

我应该怎么写我的代码在models.pyForms.py等等该模板呈现它一个下拉元素?

回答

13

从模型到模板:

models.py

COLOR_CHOICES = (
    ('green','GREEN'), 
    ('blue', 'BLUE'), 
    ('red','RED'), 
    ('orange','ORANGE'), 
    ('black','BLACK'), 
) 

class MyModel(models.Model): 
    color = models.CharField(max_length=6, choices=COLOR_CHOICES, default='green') 

forms.py

class MyModelForm(ModelForm): 
    class Meta: 
     model = MyModel 
     fields = ['color'] 

views.py

class CreateMyModelView(CreateView): 
    model = MyModel 
    form_class = MyModelForm 
    template_name = 'myapp/template.html' 
    success_url = 'myapp/success.html' 

template.html

<form action="" method="post">{% csrf_token %} 
    {{ form.as_p }} 
    <input type="submit" value="Create" /> 
</form> 

,或者只显示你的选择栏:

{{ form.color }}