代码之家  ›  专栏  ›  技术社区  ›  Eric Acevedo

很多都是在线的

  •  0
  • Eric Acevedo  · 技术社区  · 7 年前

    当尝试在ModelAdmin中将多个关系用作内联时,会导致错误admin。E105位于底部,但在正常情况下,没有内联,工作正常。以下是代码:

    模型。py

    class Reference(models.Model):
        url = models.UrlField()
        ...
    
    
    class BaseModel(models.Model):
        ...
        references = models.ManyToManyField(
                Reference,
                related_name="references_%(app_label)s_%(class)s_related",
            )
    
        class Meta:
            abstract=True
    
    
    class Case(BaseModel)
        ...
        name = models.CharField(max_length=255)
        ...
    

    管理py

    class InlineReference(admin.TabularInline):
        model = BaseModel.references.through
    
    
    class CaseAdmin(admin.ModelAdmin):
        ...
        inlines = [InlineReference, ]
        exclude = ['references', ]
        ...
    

    错误消息是:

    SystemCheckError: System check identified some issues:
    ERRORS:
    <class 'admin.CaseAdmin'>: (admin.E105) 'admin.InlineReference' must have a 'model' attribute.
    

    我正试着跟踪 here .

    1 回复  |  直到 7 年前
        1
  •  -1
  •   Ali    7 年前

    必须设置模型属性引用模型。

    class InlineReference(admin.StackedInline):
        model = Reference
    
    
    class BaseAdmin(admin.ModelAdmin):
        ...
        inlines = [InlineReference, ]
        ...
    
    admin.site.register(Base, BaseAdmin)
    
    推荐文章