Python Django where在queryset中,url中带有逗号分隔的slug

Python Django where在queryset中,url中带有逗号分隔的slug,python,django,Python,Django,我有一个模特 型号.py class Category(models.Model): title = models.CharField(max_length=100,null=True,blank=False) slug = models.SlugField(max_length=150,null=True,blank=False) class Post(models.Model): title = models.CharField(max_length=256,nul

我有一个模特

型号.py

class Category(models.Model):
    title = models.CharField(max_length=100,null=True,blank=False)
    slug = models.SlugField(max_length=150,null=True,blank=False)

class Post(models.Model):
    title = models.CharField(max_length=256,null=True,blank=False)
    categories = models.ManyToManyField(Category)
class PostList(TemplateView):
    ...
    def get(self,request,*args,**kwargs):
        categories = request.GET.get('category')
        post_list = Post.objects().filter(categories__in=categories)
    ...
因此,在视图中,我需要查询所有具有特定类别的帖子 这是将使用的url或-PK或slug

视图.py

class Category(models.Model):
    title = models.CharField(max_length=100,null=True,blank=False)
    slug = models.SlugField(max_length=150,null=True,blank=False)

class Post(models.Model):
    title = models.CharField(max_length=256,null=True,blank=False)
    categories = models.ManyToManyField(Category)
class PostList(TemplateView):
    ...
    def get(self,request,*args,**kwargs):
        categories = request.GET.get('category')
        post_list = Post.objects().filter(categories__in=categories)
    ...

由于传递了逗号分隔的字符串,上面的视图引发了以下错误:int()的
无效文本,以10为基数:','
,但如何实现这一点?

逗号分隔您必须手动执行此操作:

categories=request.GET.GET('category').split(',')

更多的Django方法是将查询字符串更改为

?类别=slug1&category=slug2

那你可以用

categories=request.GET.getlist('categority')