繁体   English   中英

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

[英]Django 1.11 - Inline Admin Model - Error: admin.E106

我想访问艺术管理页面中的图像模型,因为它是在文档中编写的但出了点问题:

/画廊/模型.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')

/产品/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' 的值必须是一个模型。

可能是什么?

正如 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')

忠告:不要在累的时候写代码,你会犯愚蠢的错误

在我的情况下,我在定义内联时不小心留下了一个尾随逗号:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM