这是我的代码。无论选择什么urlpattern:我希望它的名称在views.py中存储为url
。然后在queryset filter()中使用它。
urls.py
url(r'^news/', BoxesView.as_view(), name='news'),
url(r'^sport/', BoxesView.as_view(), name='sport'),
url(r'^cars/', BoxesView.as_view(), name='cars'),
views.py
class BoxesView(ListView):
url = #urlname to go here
def get_queryset(self):
queryset_list = Post.objects.all().filter(category=url)
models.py
category = models.CharField(choices=CATEGORY_CHOICES)
choices.py
CATEGORY_CHOICES = (
('1', 'news'),
('2', 'sport'),
('3', 'cars'),
)
有什么想法吗?
答案 0 :(得分:1)
我会用这样的东西替换你的url.py:
url(r'(?P<keyword>\w+)/$', BoxesView.as_view())
这会将您的地址更改为url参数,然后您可以在此方法中访问该参数:
def get_queryset(self):
url = self.kwargs['keyword']
queryset_list = Post.objects.all().filter(category=url)
答案 1 :(得分:0)
您可以使用它来获取视图的名称
url = resolve(self.request.path_info).url_name
更新:添加&#34; self。&#34;使用通用视图时需要它。并且不要忘记导入:
from django.core.urlresolvers import resolve