【发布时间】:2016-11-30 22:07:05
【问题描述】:
在 Django 中使用基于类的通用视图时,拥有queryset 属性意味着“限制”视图将操作的对象集合,对吗?
如果提供了查询集,则该查询集将用作对象的来源。 (Django's get_object())
型号:
from django.db import models
class Person(models.Model):
full_name = models.CharField(max_length=30)
is_active = False
查看:
from django.views.generic import DetailView
from books.models import Person
class PersonDetail(DetailView):
queryset = Person.objects.filter(is_active=True)
上面的queryset 确保只考虑带有is_active=true 的对象。
但这在内部是如何工作的?
例如:Django 是否将 SQL 条件 AND is_active=TRUE 附加到视图中的每个查询?
好的,最后一个例子看起来很愚蠢,但我希望你能理解我的问题。谢谢你。
【问题讨论】:
-
"Django 是否将 SQL 条件 AND is_active=TRUE 附加到视图中的每个查询"。对,就是这样。然后applies additional filters to narrow down to a specific object.
-
@solarissmoke 谢谢你的评论。如果你制定一个答案,我很乐意接受它:)