如何覆盖下拉列表中的默认值
How to override the default value in dropdown list
在我的网络应用程序中,我有一个使用 ModelForm 创建的下拉列表,它呈现得很好,但是,我无法设置像 "Choose One Option" 或 "Select One" 这样的默认文本,而是显示我想覆盖的默认“----”
我已经尝试在我的小部件中使用 forms.ChoiceField,但它仍然没有任何区别
from django import forms
from . import models
from .models import FacultyData
class DepartmentCreationForm(forms.ModelForm):
class Meta:
model = models.DepartmentData
fields = ['fid', 'dept_name']
data = []
#data.append((None, 'select one'))
data.append(('20', "---Choose One---"))
CHOICES = FacultyData.objects.all()
for v in CHOICES:
# fname = "%s -- $%d each" % (v.faculty_name, v.created_on)
data.append((v.id, v.faculty_name))
widgets = {
'fid': forms.Select(attrs={'class': 'form-control'}),
'dept_name': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Enter Department Name'})
}
我希望默认输出为 "Select One" 但实际输出为“-----”
试试这个:
class YourForm(forms.ModelForm):
your_field_name = forms.ModelChoiceField(queryset=FacultyData.objects.all(),empty_label="Select One")
class Meta:
model = DepartmentData
fields = ("__all__")
widgets = { something }
如果它不起作用,请显示您的模型
在你的模型中尝试这样的事情:
options = (
('','Select One'),
('One','One'),
('Two','Two')
)
choice = models.CharField(max_length=100, choices=options)
这对我有用,希望对您有所帮助:
class yourform(forms.ModelForm):
##something##
def __init__(self, *args, **kwargs):
self.fields["fieldname"].empty_label="fieldDefaulText"
在我的网络应用程序中,我有一个使用 ModelForm 创建的下拉列表,它呈现得很好,但是,我无法设置像 "Choose One Option" 或 "Select One" 这样的默认文本,而是显示我想覆盖的默认“----”
我已经尝试在我的小部件中使用 forms.ChoiceField,但它仍然没有任何区别
from django import forms
from . import models
from .models import FacultyData
class DepartmentCreationForm(forms.ModelForm):
class Meta:
model = models.DepartmentData
fields = ['fid', 'dept_name']
data = []
#data.append((None, 'select one'))
data.append(('20', "---Choose One---"))
CHOICES = FacultyData.objects.all()
for v in CHOICES:
# fname = "%s -- $%d each" % (v.faculty_name, v.created_on)
data.append((v.id, v.faculty_name))
widgets = {
'fid': forms.Select(attrs={'class': 'form-control'}),
'dept_name': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Enter Department Name'})
}
我希望默认输出为 "Select One" 但实际输出为“-----”
试试这个:
class YourForm(forms.ModelForm):
your_field_name = forms.ModelChoiceField(queryset=FacultyData.objects.all(),empty_label="Select One")
class Meta:
model = DepartmentData
fields = ("__all__")
widgets = { something }
如果它不起作用,请显示您的模型
在你的模型中尝试这样的事情:
options = (
('','Select One'),
('One','One'),
('Two','Two')
)
choice = models.CharField(max_length=100, choices=options)
这对我有用,希望对您有所帮助:
class yourform(forms.ModelForm):
##something##
def __init__(self, *args, **kwargs):
self.fields["fieldname"].empty_label="fieldDefaulText"