我想在Django models.py
中创建一个字段,它将作为下拉列表呈现,用户可以从那里选择选项。
如果我有5个选择:
我应该如何在models.py
和Forms.py
中编写代码,以便模板将其呈现为下拉元素?
在模型choices
中使用https://docs.djangoproject.com/en/1.8/ref/models/fields/#choices选项指定CharField或IntegerField,并使用ModelForm https://docs.djangoproject.com/en/1.8/topics/forms/modelforms/。
从模型到模板:
models.朋友
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.朋友
class MyModelForm(ModelForm):
class Meta:
model = MyModel
fields = ['color']
views.朋友
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 }}