我有这个代码
class DistrictResource(ModelResource):
model=models.District
res_name="district"
class Meta:
queryset = self.model.District.objects.active()
如果我使用 self 时出现错误,我如何self.model
在 meta 中使用
你需要使用
queryset = models.District.objects.active()
代替
queryset = self.model.District.objects.active()
在这种情况下。
编辑:
由于Python 中的范围解析规则,您无法访问res_name
内部类:
块是作为一个单元执行的一段 Python 程序文本。以下是块:模块、函数体和类定义。
范围定义了名称在块中的可见性。
类块中定义的名称范围仅限于类块;它没有扩展到方法的代码块——这包括生成器表达式,因为它们是使用函数范围实现的。
关于 Python Scope 解析的一个简单规则是 LEGB 规则:
L. 局部变量,即在函数内分配的名称。
E. 封闭函数局部变量。
G. 全球
B. 内置插件。
class Meta
Django/Tastypie 在使用元类构造类时将其用作配置选项。我不确定您为什么Meta
要从内部访问外部变量Meta
,而不仅仅是在内部定义它Meta
。