Python Django:如何通过URL仅传递选定参数
我正在尝试创建一个搜索页面,在那里可以点击按钮,这将过滤像在这个页面中的帖子[Splice Sounds][2](我想你需要一个帐户来查看这个,所以我会添加屏幕截图) 要做到这一点,我想我需要传递一个列表,以便我可以根据该列表进行筛选,但我找不到一种方法来做到这一点 对于每种类型(由for循环创建)都有一个Python Django:如何通过URL仅传递选定参数,python,django,django-views,django-urls,Python,Django,Django Views,Django Urls,我正在尝试创建一个搜索页面,在那里可以点击按钮,这将过滤像在这个页面中的帖子[Splice Sounds][2](我想你需要一个帐户来查看这个,所以我会添加屏幕截图) 要做到这一点,我想我需要传递一个列表,以便我可以根据该列表进行筛选,但我找不到一种方法来做到这一点 对于每种类型(由for循环创建)都有一个GET表单,这将允许我一次按一种类型进行筛选,但我希望一次按多个类型进行筛选,这样就行不通了 在我链接到的站点中:他们将类型/标记传递到url中,那么我如何在django中做到这一点 另外:我
GET
表单,这将允许我一次按一种类型进行筛选,但我希望一次按多个类型进行筛选,这样就行不通了
在我链接到的站点中:他们将类型/标记传递到url中,那么我如何在django中做到这一点
另外:我可以创建单独的url路径并链接到这些路径,但是我必须为每一种类型/标签的组合这样做,这太多了,所以我不能这样做
该链接显示了一个站点,该站点通过如下url传递标记
以下是一些相关代码:
这就是我想要过滤的方式,这就是为什么我需要传递参数列表
for arg in args:
Posts = Posts.filter(genres=arg)
网址
urlpatterns=[
路径(“”,views.find,name='find'),
路径('searchgenres=',views.find_search,name='find_search'),
]
编辑:我已经尝试了很多方法,比如使用ajax,但我无法让它很好地工作
编辑2:我已将问题更改为如何通过URL仅传递选定参数要将列表传递到请求中,您可以:
Post.objects.filter(genre\uu in=genres)
了解Django允许从Django.db使用Q objects进行复杂的查找也可能会有所帮助。models import Q
。|
字符表示或。这允许进行复杂的过滤。例如:
Posts.objects.filter(Q(genre='Pop')|Q(genre='Rock')|Q(genre='Jazz'))
我理解这一点,但我正试图做到这一点。我显示的代码适用于,但它需要一个类型列表才能使用,因此您知道通过URL仅传递选定类型的方法吗?我已更改了每个选中复选框的问题,提交表单后,这些值将传递到请求中。它不是列表,标记包含字符串,踢你能踢的split@iklinac你知道一种方法吗?我可以通过url传递选定的类型,因为如果我把所有类型都放在路径中,那么它会被所有类型过滤掉。我现在改变了问题
urlpatterns = [
path('', views.find, name='find'),
path('searchgenres=<genres_selected>', views.find_search, name='find_search'),
]