Django :为什么是self。用在这里?

标签 django self

我只是在查看官方文档中的动态过滤: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。一开始?到目前为止,我了解到您不添加 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)

最佳答案

在这里使用 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

类里面的任何地方。

关于 Django :为什么是self。用在这里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50548967/

相关文章:

c - pthread_self() 没有返回有意义的线程 ID?

Python:初始化大量类成员的便捷方法

python - 将自身数据传递给递归函数

python - Django - 从亚马逊 S3 中删除文件

python - 运行时错误: main thread is not in main loop using Matplotlib with Django

django - DRF - 序列化对象中的 OrderedDict

python - ArrayField 缺少 1 个必需的位置参数

python - 如何使用唯一约束更新 Django 中的对象列表?

JavaScript OOP 错误的 _this 值

PHP条件,如果当前页面,则链接突出显示