gpt4 book ai didi

python - 从 Django 中的几种形式收集信息

转载 作者:行者123 更新时间:2023-11-28 19:23:55 25 4
gpt4 key购买 nike

我正在创建简单的搜索引擎,所以我在页面顶部有一个输入文本字段,旁边有一个“搜索”按钮。这一切都在一种形式中,并“产生”例如 /q=search%20query

在边栏中,我有一个带有过滤器的另一种形式的面板,让我们说fromto。我希望有可能创建类似 /q=search%20query&from=20&to=50 的链接。我想知道第一个表单中的按钮应该如何从第二个表单中收集信息。

我在某处读到过类似 formsets 的东西,但是我没有找到它们可以用于类似东西的信息。

最佳答案

我认为通过制作一个包含搜索词和任何过滤器的表单最容易解决这个问题;您可以将表单元素放在任何您想要的地方。

你的表单必须是这样的:

from django import forms

class MySearchForm(forms.Form):
FILTERS = (("lt20", "Less than 20"),
("20to50", "Twenty to fifty"),
)
term = forms.CharField()
filters = forms.MultipleChoiceField(widget = CheckBoxSelectMultiple, choices = FILTERS)

然后您将不得不手动显示表单,这样您就可以在模板中根据需要将其拆分。换句话说,不是使用像 {{form.as_p}} 这样的过滤器,你必须做 {{form.term}}{{form.filters}} .

您还可以在模型中定义您的过滤器,以便您可以更轻松地更改它们、添加它们等,st:

# in models.py
class = Filters(models.Model):
name = models.CharField(max_length=20)

# in your form definition,
from your_app_name.models import Filters

class MySearchForm(forms.Form):
term = forms.CharField()
filters = forms.ModelChoiceField(queryset = Filters.objects.all(), widget = CheckBoxSelectMultiple)

关于python - 从 Django 中的几种形式收集信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17662714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com