2015-06-30 2 views
11

Я хочу создать поле в Django models.py, которое будет отображаться в раскрывающемся меню, и пользователь может выбрать варианты оттуда.Выпадающая группа в Django Model

Если у меня есть 5 вариантов:

  • ЗЕЛЕНЫЙ
  • СИНИЙ
  • RED
  • ORANGE
  • ЧЕРНЫЙ

Как я должен написать свой код в models.py и Forms.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 }} 
Смежные вопросы