2011-02-08 4 views
2

ModelForm에 문제가 있습니다. 필드 "test1"은 표시되지만 "test2"는 표시되지 않습니다. base_fields로 게임하는 것이 도움이되지 않았습니다.__init__에서 ModelForm에 필드를 추가 할 수 없습니다.

 
# models.py 
class Country(models.Model): 
    name = CharField(max_length=100) 

# admin.py 
class CountryAdminForm(ModelForm): 
    test1 = forms.CharField('test1') 

    def __init__(self, *args, **kwargs): 
     super(CountryAdminForm, self).__init__(*args, **kwargs) 
     self.fields['test2'] = forms.CharField('test2') 

    class Meta: 
     model = Country 

class CountryAdmin(admin.ModelAdmin): 
    form = CountryAdminForm 

admin.site.register(Country, CountryAdmin) 

감사합니다.

답변

5

해결! 필드 문제이 튜플 때문에

 
class CountryAdminForm(ModelForm): 
    test1 = forms.CharField('test1') 

    def __init__(self, *args, **kwargs): 
     super(CountryAdminForm, self).__init__(*args, **kwargs) 
     self.fields['test2'] = forms.CharField('test2') 
     self.Meta.fields.append('test2') 

    class Meta: 
     model = Country 
     fields = ['name', 'test1',] 

...

+0

모두가 test2가 아닌 일부 test1이어야합니까? – Dan

0

나는 장고 1.4 self.Meta.fields.append을 사용할 수 없습니다. 예를 들어, self.Meta.fields + = ('another_field',)으로 연결해야합니다.

+0

동일한 문제가 있지만 Django 1.5에서는 해결되지 않습니다. 도와 주실 수 있겠습니까? –

관련 문제