Python 使用表单获取URL
我有一些问题:Python 使用表单获取URL,python,django,django-forms,Python,Django,Django Forms,我有一些问题: 我使用django表单和类似multipleChiceField的字段 在view.py中,我清理数据并获得如下URL 给我建议,我可以重新组合品牌字段并隐藏为空。 我想得到这样的东西: 还有一个问题: 如何为forms.ModelMultipleChiceField设置空值(空标签) forms.py: brand = forms.MultipleChoiceField(required=False, wi
我使用django表单和类似multipleChiceField的字段
在view.py中,我清理数据并获得如下URL
给我建议,我可以重新组合品牌字段并隐藏为空。
我想得到这样的东西:
还有一个问题:
如何为forms.ModelMultipleChiceField设置空值(空标签) forms.py:
brand = forms.MultipleChoiceField(required=False,
widget=forms.SelectMultiple(attrs={'size':1})
)
def __init__(self,app_label=None, *args, **kwargs):
super(Search, self).__init__(*args, **kwargs)
self.fields['brand'].choices = [('', 'All brands')]+[(brand.name, brand) for brand in Brand.objects.all() ]
views.py:
if request.method == 'GET' and request.GET:
form = SearchForm(app_label, request.GET)
if form.is_valid():
brands = form.cleaned_data['brand']
kwargs.update({"brand__name__in": brands})
对于表单中的空标签,可以执行以下操作-
class SomeForm(forms.Form):
h=forms.CharField(label=u'',widget=forms.TextInput(attrs={'value':'Search'}))
通过将label
保留为“”,可以将标签设置为空。attrs
基本上是表单文本字段的HTML属性
更新:我不明白你问题的第一部分,详细说明…这就是浏览器提交多个数据的方式。这是HTML规范的一部分,试图改变它将是愚蠢的,从技术上讲,我不理解为什么您会试图关心url获取数据的外观 这就是说,如果您想更改它提交的方式,您需要javascript来转换表单提交上的数据。Django与此事无关 以jQuery为例:
$('#form').submit(function(){
//Get form data
//Transform into my custom set of vars
//Redirect to form's ACTION with my querystring appended.
});
请记住,在Django端不会自动解析值。通常,它会为您将其转换为列表,但现在您自己负责解析“value+value+value”。第一部分:我不喜欢我的URL的外观第二部分:对于我来说,为forms.modelmultipechoicefield获取空标签(这不是作为HTML标签的标签)很重要