码迷,mamicode.com
首页 > 其他好文 > 详细

Django Admin Cookbook-39如何两次向Django管理员添加模型

时间:2020-01-14 16:31:10      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:注册   ISE   方案   red   rop   解决方案   evo   proxy   rtc   

39.如何向Django Admin后台中添加两个同样的模型?

你需要将添加两个Hero模型Admin后台中,一个作为常规管理使用,一个作为只读使用(某些用户可能只会看到只读页面)。

如果你尝试两次注册相同的模型:

admin.site.register(Hero)
admin.site.register(Hero)

将显示如下报错:

raise AlreadyRegistered('The model %s is already registered' % model.__name__)

解决方案是,继承Hero模型并使用ProxyModel代理模型。

# In models.py
class HeroProxy(Hero):
    class Meta:
        proxy = True
...
# In admin.py
@admin.register(Hero)
class HeroAdmin(admin.ModelAdmin, ExportCsvMixin):
    list_display = ("name", "is_immortal", "category", "origin", "is_very_benevolent")
    ....
@admin.register(HeroProxy)
class HeroProxyAdmin(admin.ModelAdmin):
    readonly_fields = ("name", "is_immortal", "category", "origin",
        ...)

返回目录

Django Admin Cookbook-39如何两次向Django管理员添加模型

标签:注册   ISE   方案   red   rop   解决方案   evo   proxy   rtc   

原文地址:https://www.cnblogs.com/superhin/p/12192399.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!