2015-06-30 57 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 }}