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

返回目录

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

时间: 2024-11-05 19:31:45

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

django学习笔记【001】django版本的确定&创建一个django工程

2.3 查看当前的django版本 python3.5 -m django --version 1.10.4 2.3.1 创建一个django工程 django-admin startproject mysite 在创建工程时的一些注意项: 1.程序中所以的命名力求见名知义,这个工程明也一样 2.注意这个工程不要和python中其它的东西重名:如test,django 这个的命名对于工程来说是不合适的. 所谓的django工程(project)只不过是一个在当前目录下的一个子目录,里面包涵了若干

Django之真正创建一个django项目

真正创建一个django项目 1 创建Django项目     :new-project 2 创建APP :  python manager.py startapp app01 3 setting 配置 : 配置APP INSTALLED_APPS中加上"app01" 配置静态文件 首先在项目下创建静态文件夹static 然后在setting下添加 STATICFIFLES_DIRS=( os.path.join(BASE_DIR, 'static'), ) 注意一般开始就要配置好st

django官方文档1.6学习笔记-编写你的第一个django程序

运行环境  centos6.5  django1.6 python2.7.8 python -c "import django;print djang.get_version()" or django.VERSION 创建django项目: django-admin.py startproject mysite 目录结构如下: mysite/                             ###这个名字对django命名成什么都没关系.       manage.py    

django官方文档1.6学习笔记-编写你的第一个django程序<2>

写几个有用的视图 每个视图负责做两件事情,返回一个HttpResponse对象包含被请求的页面的内容,或者抛出一个异常,例如Http404.剩下的视图做什么取决于你自己. 你的视图可以从数据库中读记录,或者不读.可以利用一个模板系统比如django自带的或者第三方的Python模板系统,或者不用.可以实时生成一个pdf文件,输出XML,创建一个ZIP压缩包.所有你想做的一切都可以做,使用任何你想使用python类库. 方便起见,我们使用django自带的数据库API,让我们简单的看一个index

创建一个django项目,基本配置及运行流程

1.创建一个文件夹a,在命令行里进入a目录下, 2.执行命令创建虚拟环境:python -m venv venv 3.激活虚拟环境:source 名称/bin/activate [linux系统] cd 名称/scripts activate.bat [windows系统] 4.安装django到虚拟环境中 pip install django 5.到命令行a目录下 ,创建项目:    django-admin startproject myproject 6.进入到myproject 下,输入

创建一个Django项目的基本操作

1-配置好环境 下载IDE,如:pycharm, 数据库: mysql: 需要安装好mysql客户端服务端在开发环境中(Windows或者Ubuntu) redis:客户端服务端 是否用Navicat等图形化界面(不用的话可以在环境中直接创建,或者pycharm可以创建) 2-创建虚拟环境 需要制定虚拟环境,环境中安装好Django的版本,可pip install 安装好 如果在pycharm中可以直接拖进去当前目录即可安装依赖包,可直接settings创建虚拟环境 命令:mkvirtualen

创建一个django项目

1:安装python 2:安装django (环境变量要配置正确) 3:使用 django-admin.py 来创建 HelloWorld 项目: 4:目录说明: HelloWorld: 项目的容器. manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互. HelloWorld/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包. HelloWorld/settings.py: 该 Django 项目的设置/配置. H

Django Admin Cookbook 中文版

英文原版 链接 http://books.agiliq.com/projects/django-admin-cookbook/en/latest/ Django Admin Cookbook-如何定制和使用Django Admin管理后台 这是一本关于如何使用和定制Django Admin管理后台的书,它采用了我们所回答的,大约40个常见问题和基本任务的方式编写. 这些章节基于一组通用Django模型来讲解,你可以在此处详细阅读(本书中使用的模型). 简单的说,我们建立了两个Django应用,分

第一个Django项目及部署到Sina App Engine

Sina App Engine简称SAE,是个比较好的网站托管平台,目前说是全面免费,其实就是每个人分配很小的资源配额,在一定的使用范围内不用消耗云豆(SAE计费方式),对于个人学习和研究足够了,同类的还有GAE(google app engine)以及BAE(baidu app engine),gae身在国内就不用想太多了,除非爱折腾,bae也还不错,不过要用就要花钱,最低的配置只要几毛钱一天,也还算便宜.当然,如果资金富裕或者流量到了一定程度,可以考虑云服务器. 目前,在SAE上部署了一个D