Django 使用在相同models.py中定义的表来显示列表,并在管理表单中填充该表的许多字段

Django 使用在相同models.py中定义的表来显示列表,并在管理表单中填充该表的许多字段,django,django-models,django-forms,django-admin,manytomanyfield,Django,Django Models,Django Forms,Django Admin,Manytomanyfield,我使用的是Django 1.7和python 3.4 我的一个模型包含一个名为Enterprise的类以及其他五个类(Type、Products等),每个类都与Enterprise有很多关系 class Enterprise(models.Model): enterprise = models.CharField(max_length=255) slug = models.SlugField(max_length=255, unique=True)

我使用的是Django 1.7和python 3.4 我的一个模型包含一个名为Enterprise的类以及其他五个类(Type、Products等),每个类都与Enterprise有很多关系

    class Enterprise(models.Model):
        enterprise = models.CharField(max_length=255)
        slug = models.SlugField(max_length=255, unique=True)
        is_active = models.BooleanField(default=True)
        types = models.ManyToManyField(Type)
        products = models.ManyToManyField(Product)
        assets = models.ManyToManyField(Asset)
        operations = models.ManyToManyField(Operation)
        materials = models.ManyToManyField(Material)

        def __str__(self):
            return self.enterprise
我正在尝试使用管理表单来填充这些字段。在为所有五个类配置了admin之后,我将像这样定义enetpriseadmin类

   class EnterpriseAdmin(admin.ModelAdmin):
       list_display = ['enterprise', 'slug', 'Type', 'Operation', 'Asset',
                       'Material', 'Products']
       fieldsets = (
           (None, {'fields': ('Enterprise', 'slug')}),
           ('Categorization', {'fields': ('enterprise', 'slug', 'Type', 'Operation', 'Asset', 'Material', 'Products')}),                                            
       )

       add_fieldsets = (
                  (None, {'classes': ('wide',),
               'fields': ('enterprise', 'slug', 'Type', 'Operation','Asset',
                          'Material', 'Products')}
                  ),
       )
       search_fields = ('enterprise',)
       ordering = ('enterprise',)

   admin.site.register(Enterprise, EnterpriseAdmin)
但它正在产生错误:

    <class 'enterprise.admin.EnterpriseAdmin'>: (admin.E108) The value of         'list_disp
    lay[2]' refers to 'Type', which is not a callable, an attribute of 'EnterpriseAd
    min', or an attribute or method on 'enterprise.Enterprise'.
    <class 'enterprise.admin.EnterpriseAdmin'>: (admin.E108) The value of 'list_disp
    lay[3]' refers to 'Operation', which is not a callable, an attribute of 'Enterpr
    iseAdmin', or an attribute or method on 'enterprise.Enterprise'.
    <class 'enterprise.admin.EnterpriseAdmin'>: (admin.E108) The value of 'list_disp
    lay[4]' refers to 'Asset', which is not a callable, an attribute of 'EnterpriseA
    dmin', or an attribute or method on 'enterprise.Enterprise'.
    <class 'enterprise.admin.EnterpriseAdmin'>: (admin.E108) The value of 'list_disp
    lay[5]' refers to 'Material', which is not a callable, an attribute of 'Enterpri
    seAdmin', or an attribute or method on 'enterprise.Enterprise'.
    <class 'enterprise.admin.EnterpriseAdmin'>: (admin.E108) The value of 'list_disp
    lay[6]' refers to 'Products', which is not a callable, an attribute of 'Enterpri
    seAdmin', or an attribute or method on 'enterprise.Enterprise'.
:(admin.E108)“list\u disp”的值
lay[2]”指的是“Type”,它不是可调用的,是“EnterpriseAd”的属性
“min”,或“enterprise.enterprise”上的属性或方法。
:(admin.E108)“list\u disp”的值
层[3]”指的是“操作”,它不是可调用的,是“Enterpr”的属性
iseAdmin”,或“enterprise.enterprise”上的属性或方法。
:(admin.E108)“list\u disp”的值
“层[4]”指的是“资产”,它不是可调用的,是“EnterpriseA”的一个属性
dmin”,或“enterprise.enterprise”上的属性或方法。
:(admin.E108)“list\u disp”的值
“层[5]”指的是“材料”,它不是可调用的,是“Enterpri”的属性
seAdmin”,或“enterprise.enterprise”上的属性或方法。
:(admin.E108)“list\u disp”的值
“层[6]”指的是“产品”,它不是可调用的,是“Enterpri”的属性
seAdmin”,或“enterprise.enterprise”上的属性或方法。

我基本上是在尝试生成一个表单来填充企业表,这需要使用这五个字段中的现有数据库值填充所有五个类别。

使用关系字段名,而不是使用相关模型类的名称,例如:

    list_display = ['enterprise', 'slug', 'types', 'perations', 'assets',
                   'materials', 'products']

@GwynBleidD建议的答案是显示错误,列表显示不能有多个字段。 但是,我从列表中删除了这五个字段,从而找到了一个解决方法。现在它开始工作了