django modelform 选择框设置内容
时间: 2023-10-10 19:06:05 浏览: 53
在 Django 的 ModelForm 中,你可以通过在表单字段上使用 `choices` 参数来设置选择框的内容。`choices` 参数是一个由元组组成的列表,每个元组包含两个值:选项的值和显示在选择框中的标签。
例如,假设你有一个名为 `Category` 的模型,它有一个名为 `name` 的字段。你想要在一个表单中使用一个选择框来选择 `Category` 实例,可以使用如下的代码:
```python
from django import forms
from .models import Category
class CategoryForm(forms.ModelForm):
class Meta:
model = Category
fields = ['name']
widgets = {
'name': forms.Select(choices=[(category.name, category.name) for category in Category.objects.all()])
}
```
在上面的代码中,我们使用了 `forms.Select` 部件来渲染 `name` 字段,并将 `choices` 参数设置为一个包含 `Category` 实例名称的元组列表。这样,表单中的 `name` 字段将显示为一个选择框,其中选项的值和标签都是 `Category` 实例的名称。
当然,你可以根据你的需求自定义 `choices` 参数的值,例如使用 `id` 作为选项的值而不是名称。