我正在为我的网站制作搜索精简程序,我正在使用GET表单将信息传递给URL。目前,当您点击“搜索”时在GET表格中提交数据,表格不保留您选择的内容。我试图通过提供一个“价值”来实现这一目标。输入中的字段等于' request.GET.xxxx'。当我自己编写输入HTML并且没有通过' {{form.keywords}}'来加载它时,我能够将这个用于我的关键字输入。但是我不能为我的选择字段复制这个。有人知道我怎么做吗?干杯!
HTML -
<div class="searchrefiner">
<h2 class="searchrefiner-title">Job Finder</h2>
<form class="qsm-form" action="{% url 'browse' %}" method="GET">
{{ form.non_field_errors }}
<p class="searchrefiner-field-title">Business Industry</p><br>
{{ form.business_industry }}
<p class="searchrefiner-field-title">Business Region</p><br>
{{ form.business_address_region }}
<p class="searchrefiner-field-title">Employment Type</p><br>
{{ form.employment_type }}
<p class="searchrefiner-field-title">Keywords</p><br>
{{ form.keywords }}<br>
<button type="submit" class="qsm-form-button">Search Jobs</button>
</form>
</div>
表格 -
class JobSearchForm(forms.Form):
employment_type = forms.ChoiceField(employment_type_choice, widget=forms.Select(attrs={'class': 'qsm-form-input'}))
business_address_region = forms.ChoiceField(region_choice, widget=forms.Select(attrs={'class': 'qsm-form-input'}))
business_industry = forms.ChoiceField(industry_choice, widget=forms.Select(attrs={'class': 'qsm-form-input', 'value': '{{ request.GET.business_industry }}'}))
keywords = forms.CharField(max_length=20, widget=forms.TextInput(attrs={'class': 'qsm-form-input', 'placeholder': 'Enter Keywords...', 'value': '{{ request.GET.keywords }}'}))
答案 0 :(得分:1)
你根本不这样做。表单定义用于字段的定义,而不是它们的值;此时无法访问请求数据,而您只是传递看起来像模板变量的字符串。
这是视图的工作,它很简单:
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.7/react.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.7/react-dom.js"></script>