如何在 django admin 中使用 iterable 传递多个 admin class
how to pass multiple admin class with iterable in django admin
from django.contrib import admin
from .models import Post, Comment, DataTracking
myModels = [Comment, DataTracking]
@admin.register(myModels, safe=True)
class CommentAdmin(admin.ModelAdmin):
list_display = ('name', 'body', 'post', 'created_on', 'active')
list_filter = ('active', 'created_on')
search_fields = ('name', 'email', 'body')
actions = ['approve_comments']
def approve_comments(self, request, queryset):
queryset.update(active=True)
class DataTrackingAdmin(admin.ModelAdmin):
list_display = ('blogtitle','country','viewcount')
list_filter = ('blogtitle','country')
search_fields = ('blogtitle','country','viewcount')
class PostAdmin(admin.ModelAdmin):
class Media:
js=("injectjs.js",)
list_display = ('title', 'slug', 'status','created_on')
list_filter = ("status",)
search_fields = ['title', 'content']
prepopulated_fields = {'slug': ('title',)}
admin.site.register(Post, PostAdmin)
我正在尝试这样做我想向管理员注册新添加的 DataTracking 模型我尝试将两者作为单独的列表管理员 class 和 itrables 传递给管理员注册它给我错误
终于我明白了,不需要通过 itrables 来完成我可以通过使用 admin.site.register(Post, PostAdmin)
和 admin.site.register(DataTracking, DataTrackingAdmin)
来注册它两次,当我尝试通过这种方法注册它们时我得到了错误因为我这样做 admin.site.register(DataTracking, DataTracking)
并且我之前将 Admin class 和模型都命名为 DataTracking 这就是为什么它给我错误所以我开始寻找 @admin.register()
方法
from django.contrib import admin
from .models import Post, Comment, DataTracking
myModels = [Comment, DataTracking]
@admin.register(myModels, safe=True)
class CommentAdmin(admin.ModelAdmin):
list_display = ('name', 'body', 'post', 'created_on', 'active')
list_filter = ('active', 'created_on')
search_fields = ('name', 'email', 'body')
actions = ['approve_comments']
def approve_comments(self, request, queryset):
queryset.update(active=True)
class DataTrackingAdmin(admin.ModelAdmin):
list_display = ('blogtitle','country','viewcount')
list_filter = ('blogtitle','country')
search_fields = ('blogtitle','country','viewcount')
class PostAdmin(admin.ModelAdmin):
class Media:
js=("injectjs.js",)
list_display = ('title', 'slug', 'status','created_on')
list_filter = ("status",)
search_fields = ['title', 'content']
prepopulated_fields = {'slug': ('title',)}
admin.site.register(Post, PostAdmin)
我正在尝试这样做我想向管理员注册新添加的 DataTracking 模型我尝试将两者作为单独的列表管理员 class 和 itrables 传递给管理员注册它给我错误
终于我明白了,不需要通过 itrables 来完成我可以通过使用 admin.site.register(Post, PostAdmin)
和 admin.site.register(DataTracking, DataTrackingAdmin)
来注册它两次,当我尝试通过这种方法注册它们时我得到了错误因为我这样做 admin.site.register(DataTracking, DataTracking)
并且我之前将 Admin class 和模型都命名为 DataTracking 这就是为什么它给我错误所以我开始寻找 @admin.register()
方法