2011-10-22 21 views

回答

1

你在哪裏試着編碼?一個widget需要被連接到一個現場......

這裏是你可以做到這一點的一種方法:

class MyAdmin(admin.ModelAdmin): 
    def formfield_for_dbfield(self, db_field, **kwargs): 
     if db_field.name == 'my_state_field': 
      kwargs['widget'] = INStateSelect() 
     return super(MyAdmin, self).formfield_for_dbfield(db_field, **kwargs) 

另一個辦法是覆蓋管理表單,並使用INStateField

class MyForm(forms.ModelForm): 
    class Meta: 
     model = MyModel 

    def __init__(self, *args, **kwargs): 
     super(MyForm, self).__init__(*args, **kwargs) 
     self.fields['myfield'] = INStateField() 


class MyAdmin(admin.ModelAdmin): 
    form = MyForm