【问题标题】:Use of "class Meta" in Django's admin.py在 Django 的 admin.py 中使用“class Meta”
【发布时间】:2016-03-26 19:26:16
【问题描述】:

有人能解释一下为什么我们在这里使用嵌套元类吗?我从“https://docs.djangoproject.com/en/1.9/topics/db/models/#meta-options”理解了为什么我们在 model.py 中使用 Meta 类,但我不明白为什么我们在 admin.py 和 forms.py 类中使​​用它,如下所示:

from django.contrib import admin

# Register your models here.
from .models import SignUp

class SignUpAdmin(admin.ModelAdmin):
    list_display = ["__unicode__", "timestamp", "updated"]
    class Meta:
        model = SignUp

admin.site.register(SignUp, SignUpAdmin)

【问题讨论】:

    标签: django django-forms django-admin


    【解决方案1】:

    您的SignUpAdmin.Meta 类将无效。 ModelAdmin 不使用 Meta 类。

    您不必为ModelAdmin 类指定模型,因为您在注册时指定了模型。事实上,你可以用不同的模型多次注册同一个管理类。

    admin.site.register(SignUp, SignUpAdmin)
    admin.site.register(MyOtherModel, SignUpAdmin)
    

    模型表单的Meta 类有许多可能的选项。请参阅the docs 了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-22
      • 2014-04-15
      • 2020-12-29
      • 2013-02-05
      • 2019-05-27
      • 2017-09-14
      • 2012-08-30
      • 1970-01-01
      相关资源
      最近更新 更多