【发布时间】:2012-05-08 11:01:02
【问题描述】:
我有一个 Tastypie ModelResource,它从常规 Django 模型中获取其字段。我想让 Tastypie 资源上的某些字段只读,即使它们在底层模型中是可写的。这可以通过简单的方式完成吗?
我尝试了以下方法无济于事:
def __init__(self, **kwargs):
super(ModelResource, self).__init__(**kwargs)
for f in getattr(self.Meta, 'read_onlys', []):
self.fields[f].read_only = True
【问题讨论】:
-
对不起,我忘了提到我无法让前面提到的“hack”与 Tastypie 生成的资源/模式一起工作,这正是我所追求的
-
哎呀。我通过将 read_only 更改为 readonly 来实现它。我的错。
-
超级调用中不应该有你的类名
-
托洛梅亚:你说得对。我以前犯过这个错误。我希望有一种更简单/更短的方法来调用超类而不使用 super(MyClass, self) 或 SuperClass.foo(self)。
-
等待 python 3,super 将神奇地对调用类和实例变得聪明。 docs.python.org/3.1/library/functions.html#super
标签: tastypie