如何使用Django ModelForm生成下拉输入?
我有以下型号:如何使用Django ModelForm生成下拉输入?,django,python-3.x,django-models,django-forms,Django,Python 3.x,Django Models,Django Forms,我有以下型号: from django.db import model class Fruit(models.Model): fruit_name = models.CharField(max_length=100) 还有这样一种形式: from django import forms from .models import SomeModel class FruitForm(forms.ModelForm): some_input = forms.CharField(m
from django.db import model
class Fruit(models.Model):
fruit_name = models.CharField(max_length=100)
还有这样一种形式:
from django import forms
from .models import SomeModel
class FruitForm(forms.ModelForm):
some_input = forms.CharField(max_length=100)
class Meta:
model = Fruit
fields = ['fruit_name']
fruit = [
('orange', 'Oranges'),
('cantaloupe', 'Cantaloupes'),
('mango', 'Mangoes'),
('honeydew', 'Honeydews'),
]
class TestForm(forms.Form):
some_input = forms.CharField(max_length=100)
favorite_fruit = forms.CharField(widget=forms.Select(choices=FRUIT_CHOICES))
指南向我展示了如何创建如下下拉列表:
from django import forms
from .models import SomeModel
class FruitForm(forms.ModelForm):
some_input = forms.CharField(max_length=100)
class Meta:
model = Fruit
fields = ['fruit_name']
fruit = [
('orange', 'Oranges'),
('cantaloupe', 'Cantaloupes'),
('mango', 'Mangoes'),
('honeydew', 'Honeydews'),
]
class TestForm(forms.Form):
some_input = forms.CharField(max_length=100)
favorite_fruit = forms.CharField(widget=forms.Select(choices=FRUIT_CHOICES))
我想要实现的是,基于fruit
模型的fruit\u id和fruit\u name列生成键/值元组列表,而无需手动将数据插入果形
我错过了什么 通常,您可以通过以下方式执行此操作: 您可以更改
queryset=
参数,例如预先过滤queryset。例如,如果您只想显示以A
开头的水果
,可以进行如下筛选:
from django import forms
# example: only show fruit that starts with an A
class TestForm(forms.Form):
some_input = forms.CharField(max_length=100)
favorite_fruit = forms.ModelChoiceField(
queryset=Fruit.objects.filter(fruit_name__startswith='A')
)
来自django导入表单的
#示例:仅显示以A开头的水果
类TestForm(forms.Form):
某些输入=forms.CharField(最大长度=100)
favorite_fruit=forms.model选择字段(
queryset=Fruit.objects.filter(Fruit\u name\u startswith='A')
)