2011-10-18 77 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

相關問題