我想在Django models.py
中創建一個字段,它將以下拉菜單的形式呈現,用戶可以從那裏選擇選項。在Django模型中的下拉列表
如果我有5種選擇:
- GREEN
- BLUE
- RED
- ORANGE
- BLACK
我應該怎麼寫我的代碼在models.py
和Forms.py
等等該模板呈現它一個下拉元素?
我想在Django models.py
中創建一個字段,它將以下拉菜單的形式呈現,用戶可以從那裏選擇選項。在Django模型中的下拉列表
如果我有5種選擇:
我應該怎麼寫我的代碼在models.py
和Forms.py
等等該模板呈現它一個下拉元素?
在模型https://docs.djangoproject.com/en/1.8/ref/models/fields/#choices中指定CharField或IntegerField並使用choices
選項並使用ModelForm https://docs.djangoproject.com/en/1.8/topics/forms/modelforms/。
從模型到模板:
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 }}