我刚刚在官方文档中查看动态过滤:https://docs.djangoproject.com/en/2.0/topics/class-based-views/generic-display/#dynamic-filtering
它说那里
def get_queryset(self):
self.publisher = get_object_or_404(Publisher, name=self.kwargs['publisher'])
return Book.objects.filter(publisher=self.publisher)
有谁知道,为什么对于self.publisher = get_object_or_404,有使用self。一开始?到目前为止我学到了它,你不添加自我。在定义变量时。
特别是我现在不确定的是我是否应该在这里使用该代码:
def get_queryset(self):
slug = self.kwargs.get('slug')
return Event.objects.filter(organiser__slug=slug)
或那一个:
def get_queryset(self):
self.slug = self.kwargs.get('slug')
return Event.objects.filter(organiser__slug=self.slug)
答案 0 :(得分:3)
在这里使用self:
axes
我们正在声明一个可以被此类中的其他方法使用的类级变量。这意味着我们可以通过调用:
来使用变量def get_queryset(self):
self.publisher = get_object_or_404(Publisher, name=self.kwargs['publisher'])
return Book.objects.filter(publisher=self.publisher)
班上的任何地方。