【问题标题】:How to add new class created in models.py to admin.py (django)如何将models.py中创建的新类添加到admin.py(django)
【发布时间】:2014-04-01 11:28:13
【问题描述】:

请问有什么建议吗?

最初我在models.py 上课Customer():

admin.py 中的代码是这样的

from django.contrib import admin
from booknowapp.models import Customer

# Register your models here.
admin.site.register(Customer)

现在我已经向模型添加了两个新类,我如何在管理员中注册以使其他新的两个类出现在应用程序中?我不确定要使用的语法。

【问题讨论】:

  • 每节课可以拨打admin.site.register一次。

标签: python django class


【解决方案1】:

如果您添加的两个新模型类别是ModelClass1 和ModelClass2,那么您可以在 admin.py 中注册多个模型,例如:

from django.contrib import admin
from booknowapp.models import Customer, ModelClass1, ModelClass2

myModels = [Customer, ModelClass1, ModelClass2]  # iterable list
admin.site.register(myModels)

或

您可以为其他两个新课程重复 admin.site.register,就像您的 Customer 一样。

【讨论】:

  • 非常感谢 Priyank。我已经通过了 Customer, ModelClass1, ModelsClass2 admin.site.register (Customer, ModelClass1, ModelsClass2) 我遇到了一个错误。谢谢吨:)
【解决方案2】:

如果你扩展你已经使用过的语法,那就是:

from django.contrib import admin
# wrap the line if it's too long
from booknowapp.models import (
    Customer,
    SecondModel,
    ThirdModel
)

# Register your models here.
admin.site.register(Customer)
admin.site.register(SecondModel)
admin.site.register(ThirdModel)

但是,这只会为您提供默认的管理模型列表视图 - 您可能希望对其进行扩展。

class CustomerAdmin(admin.ModelAdmin):
    """Specialised admin view for the Customer model."""
    # set the fields to display 
    list_display = ('name', 'address', 'registered')

# register your Customer model, using the CustomerAdmin view
admin.site.register(Customer, CustomerAdmin)

ModelAdmin 具有更多您可以利用的功能 - 搜索字段、过滤、自定义字段、自定义操作(“激活客户”),您可以在此处阅读 - http://www.djangobook.com/en/2.0/chapter06.html#custom-modeladmin-classes

【讨论】:

  • 感谢 Hugo 的建议和链接。很有帮助。
猜你喜欢
  • 2018-11-29
  • 1970-01-01
  • 1970-01-01
  • 2019-01-11
  • 2012-07-02
  • 2014-11-28
  • 1970-01-01
  • 2011-10-21
  • 1970-01-01
相关资源
最近更新 更多