Python 如何仅在某个字段为真时渲染视图德扬戈

Python 如何仅在某个字段为真时渲染视图德扬戈,python,django,django-models,django-views,django-class-based-views,Python,Django,Django Models,Django Views,Django Class Based Views,我已经使用DetailView泛型类为我基于Django的博客中的帖子创建了详细视图,到目前为止一切正常。然而,问题是,我的帖子模型中有一个字段,用于设置帖子的状态(活动、非活动、阻止),我只想在状态为活动时渲染详细视图。如果有人知道实现这一点的方法,请让我知道,我要求你尽可能详细 views.py from .models import Post from django.views.generic import DetailView class PostDetailView(DetailVi

我已经使用DetailView泛型类为我基于Django的博客中的帖子创建了详细视图,到目前为止一切正常。然而,问题是,我的帖子模型中有一个字段,用于设置帖子的状态(活动、非活动、阻止),我只想在状态为活动时渲染详细视图。如果有人知道实现这一点的方法,请让我知道,我要求你尽可能详细

views.py

from .models import Post
from django.views.generic import DetailView

class PostDetailView(DetailView):
    model = Post
    context_object_name = 'post'
    template_name = 'blog/post-detail.html'

    def get_context_data(self, **kwargs):
        context = super(PostDetailView, self).get_context_data(**kwargs)
        context['title'] = Post.objects.filter(slug=self.object.slug).first()
        return context

DetailView
中,您可以过滤查询集,例如,您可以使用以下内容进行过滤:

from django.views.generic import DetailView

class PostDetailView(DetailView):
    queryset = Post.objects.filter(active=True)

    # …

如果字段和值不同,您当然应该相应地过滤查询集。

您可以共享当前视图(提取详细信息)吗
class Post(models.Model):
    # …
    active = models.BooleanField()
    # …