2011-10-18 45 views
0

在这里调用set_fields()不会做我期望的。 (该代码的上下文是一个Django模型,但我怀疑我刚刚犯了一个python错误)。设置Meta.fields不会做我期望的

class FooEdit(ModelForm): 
    class Meta: 
     model = Foo 
     # Client should call set_fields() 
     # fields = ('A', 'B') 

def set_fields(self, pro): 
    """Set fields correctly for status.""" 
    if pro: 
     self.Meta.fields = ('A', 'B', 'X') 
    else: 
     self.Meta.fields = ('A', 'Y', 'Z', 'W') 

回答

1

您正在使用实例设置类属性。例如,

class A(object): 
    a=0 

x=A() 
print x.a #prints 0 
x.a=2 
x.a #prints 2 
A.a #prints 0 
+0

Doh。对了谢谢。 – jma

相关问题