Django 3.x - 自定义下拉菜单的自定义默认值
Django 3.x - Custom default value of a custom dropdown menu
我自己建立了一个下拉类别选择菜单,使我的django网站的搜索功能更加精确和过滤。到目前为止,这工作得很好,但我无法弄清楚如何更改下拉菜单的默认值,因为它当前显示的是“--------”,而不是像 "All" 这样的东西默认选择值。
base.html:
<div class="my-custom-dropdown">
<a>{{ categorysearch_form.category }}</a>
</div>
search_context_processor.py:
def categorysearch_form(request):
form = SearchForm()
return {'categorysearch_form': form}
forms.py
class SearchForm(forms.ModelForm):
class Meta:
model = Post
fields = ['category']
def __init__(self, *args, **kwargs):
kwargs.setdefault('label_suffix', '')
super(SearchForm, self).__init__(*args, **kwargs)
self.fields['category'].required = False
self.fields['category'].initial = 'All'
做smb。知道如何实现吗?在我的 css 使用 content: 参数只有非常有限的好处,因为标签 "All" 总是被放置在实际选择框之外。
感谢阅读:)
你可以添加initial值
在你的表单中
name = forms.CharField(initial='Your name')
如果类别是Post模型中的一个选择字段,其中一个选择是'All',那么你可以像这样将类别的初始值设置为'All'
class SearchForm(forms.ModelForm):
class Meta:
model = Post
fields = ['category']
def __init__(self, *args, **kwargs):
kwargs.setdefault('label_suffix', '')
super(SearchForm, self).__init__(*args, **kwargs)
self.fields['category'].required = False
self.fields['category'].initial = 'All'
空选项显示为“--------”。要显示其他内容(可能是 "All")来代替“--------”,我们可以在 ModelForm
s init
方法中添加一个 empty_label
,如下所示 -
self.fields['category'].empty_label = "All"
你也可以检查这个doc。
我自己建立了一个下拉类别选择菜单,使我的django网站的搜索功能更加精确和过滤。到目前为止,这工作得很好,但我无法弄清楚如何更改下拉菜单的默认值,因为它当前显示的是“--------”,而不是像 "All" 这样的东西默认选择值。
base.html:
<div class="my-custom-dropdown">
<a>{{ categorysearch_form.category }}</a>
</div>
search_context_processor.py:
def categorysearch_form(request):
form = SearchForm()
return {'categorysearch_form': form}
forms.py
class SearchForm(forms.ModelForm):
class Meta:
model = Post
fields = ['category']
def __init__(self, *args, **kwargs):
kwargs.setdefault('label_suffix', '')
super(SearchForm, self).__init__(*args, **kwargs)
self.fields['category'].required = False
self.fields['category'].initial = 'All'
做smb。知道如何实现吗?在我的 css 使用 content: 参数只有非常有限的好处,因为标签 "All" 总是被放置在实际选择框之外。
感谢阅读:)
你可以添加initial值
在你的表单中
name = forms.CharField(initial='Your name')
如果类别是Post模型中的一个选择字段,其中一个选择是'All',那么你可以像这样将类别的初始值设置为'All'
class SearchForm(forms.ModelForm):
class Meta:
model = Post
fields = ['category']
def __init__(self, *args, **kwargs):
kwargs.setdefault('label_suffix', '')
super(SearchForm, self).__init__(*args, **kwargs)
self.fields['category'].required = False
self.fields['category'].initial = 'All'
空选项显示为“--------”。要显示其他内容(可能是 "All")来代替“--------”,我们可以在 ModelForm
s init
方法中添加一个 empty_label
,如下所示 -
self.fields['category'].empty_label = "All"
你也可以检查这个doc。