如何发出request.GET出现在表单字段中?

时间:2016-02-01 05:10:37

标签: python django

我正在为我的网站制作搜索精简程序,我正在使用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 }}'}))

1 个答案:

答案 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>