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

Django Admin Cookbook-24如何从两个不同的模型创建一个Django Admin后台页面

时间:2020-01-13 14:33:28      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:forms   request   返回   block   logs   管理   显示   com   ofo   

24.如何从两个不同的模型创建一个Django管理员?

Hero模型外联到Category,因此你可以从Hero管理页面中选择一个Category对象。如果还希望能够从Hero管理页面创建及修改Category对象,则可以更改HeroAdmin管理模型,并自定义 save_model行为。

class HeroForm(forms.ModelForm):
    category_name = forms.CharField()
    class Meta:
        model = Hero
        exclude = ["category"]
@admin.register(Hero)
class HeroAdmin(admin.ModelAdmin, ExportCsvMixin):
    form = HeroForm
    ....

    def save_model(self, request, obj, form, change):
        category_name = form.cleaned_data["category_name"]
        category, _ = Category.objects.get_or_create(name=category_name)
        obj.category = category
        super().save_model(request, obj, form, change)

更改后,Admin后台显示如下,允许从Hero管理员创建或更新Category对象。

技术图片

返回目录

Django Admin Cookbook-24如何从两个不同的模型创建一个Django Admin后台页面

标签:forms   request   返回   block   logs   管理   显示   com   ofo   

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

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