每一个人,我正在阅读一本Django练习册,我看到了一个代码" model = Thing"在admin.py ,,,然而,当我删除" model = Thing" ,,,网络程序仍然可以运行时,管理网站看起来没什么区别??,这段代码是什么意思?如果没有它怎么会发生?我的models.py类是Thing
admin.py
from django.contrib import admin
from collection.models import Thing
class ThingAdmin(admin.ModelAdmin):
model = Thing #if I remove this code, the program still can run,,why need this code
list_display = ('name', 'description',)
prepopulated_fields = {'slug': ('name',)}
admin.site.register(Thing,ThingAdmin)
modles.py
from django.db import models
class Thing(models.Model):
name = models.CharField(max_length=255)
description = models.TextField()
slug = models.SlugField(unique=True)
答案 0 :(得分:1)
在model
类上设置ModelAdmin
属性将不起作用。您可以安全地从代码中删除该行。
在Django管理员中,您可以在调用admin.site.register()
或使用register
装饰器时指定模型。这允许您为多个模型使用相同的模型管理类。
admin.site.register(Thing, ThingAdmin)
admin.site.register(OtherThing, ThingAdmin)
正如Jon在评论中指出的那样,您需要为InlineModelAdmin
对象指定model
。