擅长:python、mysql、java
<p>您可以使用<a href="https://docs.djangoproject.com/en/1.10/topics/auth/default/#the-loginrequired-mixin" rel="nofollow noreferrer">^{<cd1>}</a>(django1.9中的新特性)来确保只有登录的用户才能访问该视图。在</p>
<p>然后重写<a href="https://docs.djangoproject.com/en/1.10/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin.get_queryset" rel="nofollow noreferrer">^{<cd2>}</a>方法,并过滤queryset,使其只包含登录用户的帖子。在</p>
<pre><code>from django.contrib.auth.mixins import LoginRequiredMixin
class DetailPost(LoginRequiredMixin, DetailView):
model = Post
template_name = 'detail-post.html'
context_object_name = 'post'
def get_queryset(self):
queryset = super(DetailPost, self).get_queryset()
return queryset.filter(owner=self.request.user)
</code></pre>
<p>如果用户看到的帖子不属于他们,他们将看到404页。如果您必须重定向用户而不是显示404,那么您将不得不采取不同的方法。在</p>
<p>请注意,我已经重命名了您的类<code>DetailPost</code>(对于Django中的类,建议使用CamelCase。你必须更新你的网址.py也。在</p>