如何解决将slug传递到ListView URL
我想将子弹传递给ListView。但这并不像将其传递给DetailView那样简单。
这是因为ListView没有内置的辅助支持。
我找到了问题的答案,我想和大家分享。
解决方法
注意:我使用ManyToMany字段。
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)
urls.py:
urlpatterns = [
path('<country>/',ArticlesListView.as_view(),name='articles-list'),]
views.py:
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']))
参考链接: https://docs.djangoproject.com/en/3.1/topics/class-based-views/generic-display/#dynamic-filtering
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。