views.py
class ListPosts(generic.ListView):
template_name = 'posts/list_posts.html'
context_object_name = 'list_posts'
def get_queryset(self):
#kwargs={ "slug": user.slug }
qs = Post.objects.all().filter(user=self.request.user)
return qs
此处添加了过滤器,因此查询集仅过滤登录用户的帖子。 我的问题是如何显示来自URL中的slug的用户值的帖子
urls.py
url(r'^(?P<slug>[\w.@+-]+)/Posts/$', ListPosts.as_view(), name='user_posts'),
示例:username/posts
我知道可以通过从URL传递kwargs来完成。但是我如何在同一视图中使用两种不同的模型?
答案 0 :(得分:0)
如果我理解正确,您希望使用URL中的slug值进行过滤。您可以使用self.kwargs字典访问它。可以这样做:
class ListPosts(generic.ListView):
template_name = 'posts/list_posts.html'
context_object_name = 'list_posts'
def get_queryset(self):
qs = Post.objects.filter(
user=self.request.user,
some_field=self.kwargs['slug'])
return qs
答案 1 :(得分:0)
views.py
def get_queryset(self):
qs = Posts.objects.all().filter(user__slug__exact=self.kwargs['slug'])
return qs
我发现Django:对于带有基数为10的int()的无效文字“&gt;这是为了解决这个问题。
Quote.objects.filter([model]__[field]__exact = [whatever])