在Django Admin中自定义changelist_form和list_editable

时间:2015-06-17 16:40:29

标签: python django django-admin

我想在Django Admin列表视图中引入自定义可编辑字段。我想做一些与此question非常相似的事情。

我面临的问题是Django要求list_editable中的所有字段都必须是模型中的字段。

class SomeModel(Model):
   ...

class SomeModelChangeListForm(forms.ModelForm):
    class Meta:
        model = SomeModel
    name = forms.CharField()

class SomeModelAdmin(admin.ModelAdmin):
    def get_changelist_form(self, request, **kwargs):
        return SomeModelForm

    list_display = ['name']
    list_editable = ['name']

因此,如果模型上没有name字段,它就不起作用,验证失败。

修改:我得到的具体验证错误:

  

django.core.exceptions.ImproperlyConfigured:   ' SomeModelAdmin.list_editable'是指字段,'名称'不是   在SomeModel上定义。

您可以在来源中看到此地点:Django sources

2 个答案:

答案 0 :(得分:1)

通过@kagronick

添加一些澄清答案

添加到SomeModelAdmin

def name(self, obj=None):
    pass

答案 1 :(得分:0)

前几天我遇到了这个。事实证明,只需要一个变量或类似

的方法
def name(self):
   pass

让它消失。