Django 将slug传递到ListView URL

Django 将slug传递到ListView URL,django,django-views,django-urls,Django,Django Views,Django Urls,我想将slug传递到ListView。但这并不像传递给DetailView那么简单 这是因为,ListView没有内置的slug支持 我找到了问题的答案,我想和大家分享。注意:我使用了很多字段 Models.py: class Article(models.Model): ... country = models.ManyToManyField('Country', related_name='country', blank=True) ... class Countr

我想将slug传递到ListView。但这并不像传递给DetailView那么简单

这是因为,ListView没有内置的slug支持


我找到了问题的答案,我想和大家分享。

注意:我使用了很多字段

Models.py:

class Article(models.Model):
    ...
    country = models.ManyToManyField('Country', related_name='country', blank=True)
    ...

class Country(models.Model):
    name = models.CharField(max_length=50)
    slug = models.SlugField(unique=True)
URL.py:

urlpatterns = [
    path('<country>/', ArticlesListView.as_view(), name='articles-list'),
]
参考链接:

from django.shortcuts import get_list_or_404
class ArticlesListView(ListView):
    model = Article
    template_name = 'articles/articles-list.html'


    def get_queryset(self, *args, **kwargs):
        return get_list_or_404(Article.objects.all().filter(topic__slug = self.kwargs['topic']))