【问题标题】:admin.py: "model = Thing" ,what does this code mean?if without it what gonna happen?admin.py: "model = Thing" ,这段代码是什么意思?如果没有它会发生什么?
【发布时间】:2016-04-01 10:15:57
【问题描述】:

每个人,,我正在阅读一本Django练习书,,我在admin.py中看到了一个代码“model = Thing”,,,但是,当我删除“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)

模块.py

from django.db import models

class Thing(models.Model):
    name = models.CharField(max_length=255)
    description = models.TextField()
    slug = models.SlugField(unique=True)

【问题讨论】:

标签: django django-admin


【解决方案1】:

ModelAdmin 类上设置model 属性将无效。您可以安全地从代码中删除该行。

在 Django 管理员中,您可以在调用 admin.site.register() 或使用 register 装饰器时指定模型。这允许您对多个模型使用相同的模型管理类。

admin.site.register(Thing, ThingAdmin)
admin.site.register(OtherThing, ThingAdmin)

正如 Jon 在 cmets 中指出的那样,您确实需要为 InlineModelAdmin 对象指定 model

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    • 2016-12-16
    相关资源
    最近更新 更多