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

2024-04-26 21:39:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为我的网站做一个搜索精炼器,我正在使用一个GET表单将信息传递到URL。当前,当您在获取表单中单击“搜索”并提交数据时,表单不会保留您选择的内容。我试图通过在输入中输入一个“value”字段来实现这一点,该字段等于“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 }}'}))

Tags: brformfieldgettitletypeformsbusiness
1条回答
网友
1楼 · 发布于 2024-04-26 21:39:32

你根本不是这样做的。表单定义用于字段的定义,而不是它们的值;此时无法访问请求数据,只能传递类似于template variable.s的字符串

这是一个视图作业,非常简单:

form = JobSearchForm(initial=request.GET)

相关问题 更多 >