基于类的视图django多段塞

基于类的视图django多段塞,django,django-class-based-views,Django,Django Class Based Views,我有cbt-generic-listview我想要用两个slug进行过滤。但是slug\u url\u kwargs只允许传递单个字符串。如何更新slug\u url\u kwarg以支持多个slug?或者我还能做什么 所以我有这个模型和视图功能 class SaityProfile(models.Model): user = models.ForeignKey(User, default=0) about = models.CharField(max_length=255, b

我有
cbt-generic-listview
我想要用两个slug进行过滤。但是
slug\u url\u kwargs
只允许传递单个字符串。如何更新
slug\u url\u kwarg
以支持多个slug?或者我还能做什么

所以我有这个模型和视图功能

class SaityProfile(models.Model):
    user = models.ForeignKey(User, default=0)
    about = models.CharField(max_length=255, blank=True)
    name = models.CharField(max_length=255)
    url = models.CharField(max_length=255, unique=True)

    def __unicode__(self):
        return self.name 



我的代码看起来像那样。我想添加新功能。我选择了基于类的视图,我认为这是我的错误,因为它不清楚

您根本不需要设置
slug\u url\u kwarg
。只需覆盖
get_queryset
并返回希望视图显示的queryset

class WebsitesProfileList(generic.ListView):
    def get_queryset(self):
        return Saity.objects.filter(url=self.kwargs['url'], profile=self.kwargs['profile'])  # You will probably have to change this
    ...

ListView
根本不使用
slug\u url\u kwarg
。请在您的问题中包含更多信息,例如您的URL模式、模型,以及您希望在哪些字段上进行筛选。谢谢,我是指urlconf上的slug,如果我有两个slug,并且我希望根据slug-kwargs进行筛选,该怎么办?您没有按照我的要求在问题中添加更多信息。如果你的问题包括你的模型、段塞字段的名称、url模式以及你迄今为止为你的视图所做的任何尝试,那么回答你的问题就会容易得多。当你不包含这些信息时,你就要求我们创造一些例子。好吧,我添加了我的模型和视图我梦想干净的短配置,我害怕超级功能是的,我知道如何添加和使用过滤器。我不喜欢重写方法,我认为它有干净的方式重写
get\u queryset
是Django中基于类的通用视图。
ListView
根本没有
slug\u field\u kwarg
选项,因此在这种情况下,我想不出其他方法。无需调用
super()
在我的示例中,您显式调用的是
Saity.objects.filter()
(如果需要,您可以调整示例以使用
super()
)。
class WebsitesProfileList(generic.ListView):
    model = Saity
    slug_field = 'url'
    slug_field_kwargs = 'profile_url'
    template_name = 'saity_ds/websites_profile_list.html'

    def get_context_data(self, **kwargs):
        self.profile = SaityProfile.objects.get(url=self.kwargs['profile_url'])
        extra_context = {
            'profile': self.profile 
        }
        context =  super(WebsitesProfileList, self).get_context_data(**kwargs)
        context.update(extra_context)
        return context
class WebsitesProfileList(generic.ListView):
    def get_queryset(self):
        return Saity.objects.filter(url=self.kwargs['url'], profile=self.kwargs['profile'])  # You will probably have to change this
    ...