zoukankan      html  css  js  c++  java
  • Django Admin Cookbook-24如何从两个不同的模型创建一个Django Admin后台页面

    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对象。

    返回目录

  • 相关阅读:
    单调栈
    P1164 小A点菜
    P1156 垃圾陷阱
    P1140 相似基因
    P1136 迎接仪式
    P1133 教主的花园
    P1131 [ZJOI2007]时态同步
    P1130 红牌
    利用SQLite在android上实现增删改查
    利用SQLite在android上创建数据库
  • 原文地址:https://www.cnblogs.com/superhin/p/12187038.html
Copyright © 2011-2022 走看看