django - 姜戈:为什么是自我。用在这里?
问题描述
我只是在官方文档中查看动态过滤: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.publisher = get_object_or_404。一开始?到目前为止,我了解到您不添加自我。定义变量时。
具体来说,我现在不确定是否应该在这里使用该代码:
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)
解决方案
通过在此处使用 self :
def get_queryset(self):
self.publisher = get_object_or_404(Publisher, name=self.kwargs['publisher'])
return Book.objects.filter(publisher=self.publisher)
我们声明了一个类级变量,该类中的其他方法可以使用该变量。这意味着我们可以通过调用来使用该变量:
self.publisher
课堂上的任何地方。
推荐阅读
- sql - 将多个列连接在一起,在 SQL 中由一个字符分割
- python - 在 Pandas 中,我如何使用转换和使用来自其他列的信息?
- ionic4 - 使用ionic4在Http请求中获取CORS错误
- javascript - 如何用 Javascript 隐藏表格?
- python-3.x - Python Selenium 无法使用 xpath 收集元素
- mysql - Spring Boot Kotlin + Hibernate 不断抛出 SQLSyntaxErrorException
- python - 匹配模式后,如何根据另一个列表中的预定义顺序对文件名列表进行排序?
- machine-learning - 在激活函数的反向传播过程中,为什么我们应该将 delta 乘以梯度而不是除法?
- javascript - 如何在 JS 中禁用按钮单击页面加载?
- qt - 如何将小部件添加到 QListModel