我想在my views.py中创建一个变量,该变量根据所用urlpattern的名称而变化

2024-09-28 03:12:48 发布

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

这是我的密码。无论选择什么urlpattern:我希望它的名称在views.py中存储为url。然后在queryset filter()中使用

url.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'),

视图.py

class BoxesView(ListView):
    url = #urlname to go here
    def get_queryset(self):
        queryset_list = Post.objects.all().filter(category=url)

型号.py

category = models.CharField(choices=CATEGORY_CHOICES)

选择.py

CATEGORY_CHOICES = (
    ('1', 'news'),
    ('2', 'sport'),
    ('3', 'cars'),

)

你知道吗


Tags: namepyviewurl密码asfiltercars
2条回答

我将用以下内容替换您的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)

您可以使用它来获取视图的名称

 url = resolve(self.request.path_info).url_name

更新:添加了“self.”,这是使用通用视图时需要的。别忘了导入:

 from django.core.urlresolvers import resolve

相关问题 更多 >

    热门问题