如何将models.py中新建的类添加到admin.py中(django)
请问有什么建议吗?
最开始我在 models.py
里有一个类 Customer():
这是我在 admin.py
里的代码样子
from django.contrib import admin
from booknowapp.models import Customer
# Register your models here.
admin.site.register(Customer)
现在我在模型里添加了两个新类,我该怎么在管理后台注册这两个新类,让它们在应用中显示出来呢?我不太确定该用什么语法。
2 个回答
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
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)
或者
你也可以像注册 Customer
一样,重复使用 admin.site.register
来注册这两个新类。