4

に問題がありModelFormます。フィールドtest1は表示されますが、test2- は表示されません。で遊んでbase_fieldsも役に立ちませんでした。

# 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)

ありがとうございました。

4

2 に答える 2

13

解決しました!

クラス 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')

    クラスメタ:
        モデル = 国
        fields = ['名前', 'test1',]

...

于 2011-02-08T23:42:41.200 に答える
2

問題のフィールドがタプルであるため、Django 1.4 ではself.Meta.fields.appendを使用できませんでした。たとえば、代わりにself.Meta.fields += ('another_field',)と連結する必要があります。

于 2012-11-20T16:27:46.263 に答える