Django 1.11 - 内联管理模型 - 错误:admin.E106

时间:2017-11-27 22:09:32

标签: python django

我想在艺术管理页面中访问图像模型,因为它写了in the docs,但出了点问题:

/gallery/models.py:

class Image:
    name = models.CharField(max_length=256)
    thumb = models.CharField(max_length=256)
    product = models.ForeignKey(Art, on_delete=models.CASCADE, related_name='images')

/product/admin.py:

class ArtImage(admin.TabularInline):
    model = Image
    extra = 3

class ArtAdmin(admin.ModelAdmin):
    inlines = [ArtImage]

admin.site.register(Art, ArtAdmin)

当我应用makemigrations命令时,我得到了

  

SystemCheckError:系统检查发现了一些问题:   错误:   :(admin.E106)" product.admin.ArtImage.model'的值必须是模特。

它可能是什么?

2 个答案:

答案 0 :(得分:1)

正如Alasdair在评论中指出的那样,我在编写Image类时忘了扩展models.Model,这就是为什么它没有被识别为Model实例。

Image类应如下所示:

class Image(models.Model):
    name = models.CharField(max_length=256)
    thumb = models.CharField(max_length=256)
    product = models.ForeignKey(Art, on_delete=models.CASCADE, related_name='images')

建议:不要在疲惫时编码,否则会犯愚蠢的错误

答案 1 :(得分:0)

就我而言,我在定义内联时不小心留下了逗号:

class PhotoInline(admin.TabularInline):
    model = Photo, # <-- watch out for the comma
    extra = 0
相关问题