Django Admin Cookbook-40如何为Django Admin覆盖保存操作

40.如何为Django Admin后台覆盖保存操作?

ModelAdmin有一个save_model方法,用于创建和更新模型对象。通过覆盖此内容,您可以自定义admin的保存行为。

该Hero模型具有以下字段:

added_by = models.ForeignKey(settings.AUTH_USER_MODEL,
        null=True, blank=True, on_delete=models.SET_NULL)

如果你希望在Hero对象更新时始终保持为原有用户,则可以进行以下修改:

def save_model(self, request, obj, form, change):
    obj.added_by = request.user
    super().save_model(request, obj, form, change)

返回目录

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

时间: 2024-10-08 12:51:54

Django Admin Cookbook-40如何为Django Admin覆盖保存操作的相关文章

Django Admin Cookbook 中文版

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

Django:创建用户模型报错: (admin.E108) The value of 'list_display[4]'解决方案

参考资料:虫师-<web接口开发与自动化测试:基于python语言> 日常学习Django框架中,创建了用户模型,但是页面功能验证时候,提示不能进行列表字段操作,debug好久,才找到问题原因,心累... 下面是大概过程和解决方案... models.py文件代码: 1 from django.db import models 2 3 # Create your models here. 4 # 发布会表 5 class Event(models.Model): 6 name = models

Django 2.0 学习(05):Django Admin

Django Admin 站点的管理者,而非访问者. 创建admin用户 首先,执行下面命令: python manage.py createsuperuser 其次,输入用户名和密码: Username:admin 在输入用户名之后,会提示输入邮箱地址,随便输入即可: Email address:[email protected] 最后,输入密码(最好使用数字和字符的组合,不然会被提示密码过于简单): Password: ********** Password (again): *******

Python之路-(Django(csrf,中间件,缓存,信号,Model操作,Form操作))

csrf 中间件 缓存 信号 Model操作 Form操作 csrf: 用 django 有多久,我跟 csrf 这个概念打交道就有久了. 每次初始化一个项目时都能看到 django.middleware.csrf.CsrfViewMiddleware 这个中间件 每次在模板里写 form 时都知道要加一个 {% csrf_token %} tag 每次发 ajax POST 请求,都需要加一个 X_CSRFTOKEN 的 header 什么是 CSRF CSRF, Cross Site Req

django 指令  基于the django book

django-admin startproject mysite       create a django python manage.py runserver 运行服务器. python manage.py shell 运行类似ipython,这种方式一些配置才可生效. 连接数据库之前需要创建一个数据库,创建时要指定字符集并指定数据库权限,用户名密码.然后把相关信息载入django的配置文件中.重点是数据库自身的配置(独立于django),django相对与django的配置. python

Django分发控制器urls--白话聊Django系列

开始前,先上一张图,让理解Django内部的处理流程,从图中我们可以知道Django内部使用MTV架构,那今天讲的第一个部分就是控制器,在Tornado框架中叫做路由系统,负责把url映射到相应的处理逻辑上去,在Django里是view处理,叫视图,大概了解后,我接下来就去看看这个分发器怎么实现以及怎么使用吧 url模式与视图函数的映射表 urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^index/', views.index),

django 的分页器Paginator ,从django中导入类

先创建表,然后生成批量数据. 在models文件里 from django.db import models # Create your models here. class Book(models.Model): name = models.CharField(max_length=32) price = models.DecimalField(max_digits=5,decimal_places=2) 然后执行python manage.py makemigrations   ,pytho

一 Django框架介绍——用pycharm创建Django项目

Django框架介绍 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件.并于2005年7月在BSD许可证下发布. 这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的. 更多Django框架http://code.ziqiangxuetang.com/django/django-qrcode.htm

[tp3.2.1]让默认页面: 加载Home模块的Index控制器;而让admin.php默认去加载Admin模块的Adminc控制器.

QQ:让index.php默认加载Home模块的Index控制器;而让admin.php默认去加载Admin模块的Adminc控制器.AA:复制index.php命名为admin.php复制(新建)Admin模块的控制器如AdmincController增加admin.php内容:    $_GET['m']="Admin";//指定启动模块是Admin模块    $_GET['c']="Adminc";//指定启动控制器是Adminc控制器