dev*_*eng 7 regex tags django url view
这是我在url.py中的代码:
(r'^tag/(?P<tag>\w+)/$',
ListView.as_view(
model=List,
context_object_name='some_list',
queryset=List.objects.filter(tag__name__in=[tag_name]),
template_name='some_list.html'))
Run Code Online (Sandbox Code Playgroud)
我想传递(?P<tag>\w+)给" tag_name"过滤器,但我不知道该怎么做.
另外我如何传递多个标签?像这样:
http://www.mysite.com/tag/tag1+tag2+tag3
Run Code Online (Sandbox Code Playgroud)
url.py应该得到" tag1+tag2+tag3",将其拆分为" tag1"," tag2"和" tag3",然后将它们放入" tag__name__in":
queryset=List.objects.filter(tag__name__in=[tag1, tag2, tag3])
Run Code Online (Sandbox Code Playgroud)
基本上我对基于类的通用视图感到困惑.任何的想法?
Ber*_*ant 18
您可以覆盖视图的get_queryset方法并使用您的结果构造一个查询集,例如.
from django.views.generic.list import ListView
class MyList(ListView):
def get_queryset(self):
tag_list = self.kwargs['tags'].split('+')
return List.objects.filter(tag__name__in=tag_list)
# urls.py
...
url(r'tag/(?<tags>[\w\+]+)/', MyList.as_view())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6491 次 |
| 最近记录: |