“Django”;“本地风味”;在管理中选择小部件

“Django”;“本地风味”;在管理中选择小部件,django,django-models,django-admin,Django,Django Models,Django Admin,我想用在管理 我应该在模型中添加什么字段?我怎样才能在admin中显示小部件? 编辑 我正在尝试这个 谢谢 你在哪里尝试这些代码?小部件需要附加到字段 这里有一种方法可以做到这一点: class MyAdmin(admin.ModelAdmin): def formfield_for_dbfield(self, db_field, **kwargs): if db_field.name == 'my_state_field': kwargs['

我想用在管理

我应该在模型中添加什么字段?我怎样才能在admin中显示小部件?

编辑

我正在尝试这个


谢谢

你在哪里尝试这些代码?小部件需要附加到字段

这里有一种方法可以做到这一点:

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