如何将在models.py中创建的新类添加到admin.py(django)

时间:2014-04-01 11:28:14

标签: python django class

对此有任何建议吗?

最初我在Customer():

中有models.py

这就是admin.py中的代码看起来

的方式
from django.contrib import admin
from booknowapp.models import Customer

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

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

2 个答案:

答案 0 :(得分:1)

如果您添加了两个新类型的模型ModelClass1ModelClass2,那么您可以在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其他两个新课程。

答案 1 :(得分:0)

如果扩展已使用的语法,则只需:

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