如何创建多选选项?或者向models.CharField添加属性

时间:2011-05-31 19:43:53

标签: django django-models

我有这个

models.CharField(max_length=10,choices=LOCATION_NAME)

但是,我想让它呈现这样的东西,

<select multiple="multiple">
 <option value="1">1</option>
 <option value="2">2</option>
 <option value="3">3</option>
 <option value="4">4</option>
</select>

我正在尝试将此添加到django管理员部分。

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

为您的模型创建一个ModelForm,并手动设置您希望该字段显示的小部件:

<强> models.py

class Book(models.Model):
    publisher = models.CharField(max_length=100)

<强> forms.py

class BookForm(forms.ModelForm):
    publisher = forms.MultipleChoiceField(widget=forms.SelectMultiple)

    class Meta:
        model = Book

这意味着用于显示字段的HTML是选择,表单会将数据生成为发布者列表,您的有效选择仅保存为数据库中的字符字段。你实际上并不需要指定widget = forms.SelectMultiple,但是很高兴看到发生了什么(在谈论数据库/表单/小部件时我总是混淆不同的字段)