【发布时间】:2021-03-30 19:18:48
【问题描述】:
我有一个具有live 布尔属性的 Django 模型。
我希望视图通过 slug 获取模型,并且只有在它处于活动状态时才使用 DetailView(不是基于函数的视图,因为我想看看如何去做。
模型定义
# myapp/models.py
class MyModel(models.Model):
name = models.CharField(max_length=255)
live = models.BooleanField(default=True)
slug = models.SlugField()
def save(self, *args, **kwargs):
self.slug = slugify(self.name)
我希望它会是这样的:
class ModelDetailView(DetailView):
model = MyModel
def get(self, request, *args, **kwargs):
service = self.get_object_or_404(Service, live=True) # <- Main point of what I'm looking for help with
return super().get(request, *args, *kwargs)
有没有办法过滤这种方式?
【问题讨论】:
-
基于类的视图有 no
get_object_or_404,但get_object会引发Http404异常。 -
@WillemVanOnsem 有没有办法在 get_object() 中进行过滤?比如“get_object(live=True)”之类的?
标签: django