首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django自动填充管理面板中的作者字段

是指在Django框架中,通过自定义函数来自动填充管理面板中的作者字段。这个功能可以方便地记录每个对象的创建者或修改者。

在Django中,可以通过在模型类中定义一个函数来实现自动填充作者字段。这个函数需要接收一个参数,即当前请求的用户对象,然后返回一个值作为作者字段的值。

下面是一个示例代码:

代码语言:txt
复制
from django.db import models
from django.contrib.auth.models import User

def get_current_user():
    # 获取当前请求的用户对象
    # 这里假设使用了Django的内置用户认证系统
    return User.objects.get(username=request.user.username)

class MyModel(models.Model):
    # 其他字段...
    author = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)

    def save(self, *args, **kwargs):
        # 如果对象是新创建的,则填充作者字段
        if not self.pk:
            self.author = get_current_user()
        super().save(*args, **kwargs)

在上面的代码中,我们定义了一个get_current_user函数来获取当前请求的用户对象。然后,在MyModel模型类中,我们将author字段定义为一个外键字段,关联到用户模型。在save方法中,我们通过判断对象是否是新创建的来决定是否填充作者字段。

这样,每当在管理面板中创建或修改一个对象时,作者字段都会自动填充为当前请求的用户。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)、腾讯云数据库MySQL版、腾讯云对象存储(COS)。

更多关于腾讯云产品的详细介绍和文档可以参考腾讯云官方网站:腾讯云

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何自动填充SQL语句中公共字段

如何自动填充SQL语句中公共字段 1. 前言 我们在设计数据库时候一定会带上新增、更新时间、操作者等审计信息。...你可以通过关键词 Mybatis Audit 来搜索到它们选择一款最适合你。 2.2 Mybatis Plus 自动填充 如果你使用了 Mybatis Plus ,可以借助于其自动填充功能来实现。...MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { // 声明自动填充字段逻辑...,当然你可以根据需要添加更多你需要填充字段。...总结 今天我们SQL审计一些公共字段自动填充常用方案进行了一些介绍,特别对 Mybatis Plus 提供功能进行了介绍相信能够帮助你简化一些样板代码编写。

2.2K30

DjangoAutoField字段使用

Django是一个机智框架】 默认情况下Djang会为ORM定义每一张表加上一个自增ID列,并且用这个列来做主键;出于一个MySQL-DBA工作经历我觉得 Djanog还真是机智;这样么说主要是因为我遇到过许多主从延时问题...补充知识:Djangomodels下常用Field以及字段参数 一、常见FieldType数据库字段类型 1、AutoField:自增Field域,自动增加一个数据库字段类型,例如id字段就可以使用该数据类型...1、null:用于表示某个字段可以为空 2、unique:如果设置为unique=True则该字段在此表必须是唯一 3、db_index:如果db_index=True则代表这为此字段设置索引 4...类,而Meta类封装了一些数据库信息,主要字段如下: 1、db_table:ORM在数据库表名默认为app_类名,可以通过db_table可以重写表名 2、index_together:联合索引,...https://docs.djangoproject.com/en/dev/ref/models/fields/ 以上这篇DjangoAutoField字段使用就是小编分享给大家全部内容了,希望能给大家一个参考

6.4K20

Mybatis plus通用字段自动填充最佳实践总结

'; 二、通用维护信息父类-自动赋值字段 既然我们对某一张表数据进行新增创建、修改信息维护,我们实体类也要做必要调整。...fill = FieldFill.INSERT_UPDATE表示nsert或update操作时候自动为该字段赋值 select = false表示在使用Mybatis Wrapper条件构造器进行查询时候...(这个内容与我们本机字段自动填充没有太直接联系,但是在实际应用是有意义) 三、实体类实现 下文实体类XxxYyyZzz对应数据库xxx_yyy_zzz表,除了以上四个通用字段,xxx_yyy_zzz...private JwtTokenUtil jwtTokenUtil; //我工具类,用于从Token令牌获取登陆人信息 //设置数据新增时候字段自动赋值规则 @Override...在数据修改时候,自动为updateTime、updateBy赋值。 JwtTokenUtil是我写一个工具类,从当前登录用户JWT Token获取当前登录用户用户名。

2.8K40

django 模型计算字段实例

verbose_name='姓') given_name = models.CharField(max_length=20, verbose_name='名') def name(self): # 计算字段要显示在修改页面只能定义在只读字段...(app.PersonAdmin),第二个是这个类管理模型实例(Person) return '%s,%s' % (self.family_name, self.given_name)...name.short_description = '全名' # 用于显示时名字 , 没有这个,字段标题将显示'name' readonly_fields = ('name',) admin.site.register...(Person, PersonAdmin) 补充知识:django如何在 search_fields 包含外键字段 在search_fields中加入一个外键名字是不能查询,要写成(外键名__外键字段名...,而不是电脑分辨率,就可以搜索'手机 分辨率' 以上这篇django 模型计算字段实例就是小编分享给大家全部内容了,希望能给大家一个参考。

4.4K20

Django Model字段(field)各种选项说明

字段与选项 CharField() 字符字段 max_length = xxx or None # 必选项 blank = True 和 default = ” # 如果不是必填项,可以设置 unique...default = date.today # 需要导入包 from datetime import date DateTimeField:default = timezone.now # 需要导入包 from django.utils...可以设置 through = ‘intermediary model # 如果需要建立中间模型来搜集更多信息,可以设置 related_name = xxx # 便于反向查询 补充知识:django 使用...annotate定义字段后排序翻页重复问题 objs = A.objects.annotate(number=Sum(‘b__number’)).order_by(‘-number’) 此时对objs...(‘-number’, ‘id’) 以上这篇Django Model字段(field)各种选项说明就是小编分享给大家全部内容了,希望能给大家一个参考。

1.7K30

Django ORM 查询表某列字段方法

在MVC/MVT设计模式Model模块中都包括ORM 2.ORM优势 (1)只需要面向对象编程, 不需要面向数据库编写代码. 对数据库操作都转化成对类属性和方法操作....下面看下Django ORM 查询表某列字段值,详情如下: 场景: 有一个表某一列,你需要获取到这一列所有值,你怎么操作?...但是我们想要是这一列值呀,这怎么是一个QuerySet,而且还包含了列名,或者是被包含在了元祖?...查看高阶用法,告诉你怎么获取一个值list,如: [‘测试feed’, ‘今天’, ‘第三个日程测试’, ‘第四个日程测试’, ‘第五个测试日程’] 到此这篇关于Django ORM 查询表某列字段文章就介绍到这了...,更多相关django orm 字段值内容请搜索ZaLou.Cn以前文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!

11.7K10

Django学习-第七讲:django 常用字段字段属性,外键和表关系、外键操作

1. django常用字段 1. AutoField 映射到数据库是int类型,可以有自动增长特性。一般不需要使用这个类型,如果不指定主键,那么模型会自动生成一个叫做id自动增长主键。...字段常用属性 1. null 如果设置为True,Django将会在映射表时候指定是否为空。默认是为False。...如果你Field是BooleanField,那么对应可空字段则为NullBooleanField。 2. db_column 这个字段在数据库名字。...后台管理 admin 显示中文名称 class Book(models.Model): name = models.CharField(max_length=20,null=False)...因此在底层,Django为Article表添加了一个属性名_id字段(比如author字段名称是author_id),这个字段是一个外键,记录着对应作者主键。

3.9K30

django:DateTimeField如何自动设置为当前时间并且能被修改 ——django日期时间字段使用

创建djangomodel时,有DateTimeField、DateField和TimeField三种类型可以用来创建日期字段,其值分别对应着datetime()、date()、time()三对象。...DateTimeField.auto_now 这个参数默认值为false,设置为true时,能够在保存该字段时,将其值设置为当前时间,并且每次修改model,都会自动更新。...需要注意是,设置该参数为true时,并不简单地意味着字段默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序手动为字段赋值;如果使用django再带admin管理器,那么该字段在admin...该属性通常被用在存储“创建时间”场景下。与auto_now类似,auto_now_add也具有强制性,一旦被设置为True,就无法在程序手动为字段赋值,在admin字段也会成为只读。 ?...实际场景,往往既希望在对象创建时间默认被设置为当前值,又希望能在日后修改它。怎么实现这种需求呢? django中所有的model字段都拥有一个default参数,用来给字段设置默认值。

6.9K80

Django管理后台技巧分享之实例关系搜索,autocomplete_fields字段使用

最近博客在做新功能,就是增加了两个模型,分别是专题和主题,主要就是用来对文章进行系列划分,在这个设计过程,文章和主题会进行一个关联,当主题数量很多时候,文章在选择要关联主题时候会非常难选。...一般遇到这种筛选,在前端里面都是可以进行输入来进行过滤,所以我就查看了 Django文档 找到了可以添加这个功能方法,就是autocomplete_fields字段。...,而搜索规则就是Question管理里面定义search_fields字段,也就是说Question里面必须去定义这个字段,官方也给了提示。...总结 本篇介绍了Djangoadmin.ModelAdmin中使用autocomplete_fields字段来给关联模型添加过滤搜索。...Django自带admin管理后台给我们提供了非常多功能,而且可扩展性也非常强,在使用后台时候如果有一些很常见需求,不妨去看看官方文档或者网上搜一下是否有内置方案可以解决问题。

52620

​第 07 篇:创作后台开启,请开始你表演!

创建 admin 后台管理员账户 要想进入django admin 后台,首先需要创建一个超级管理员账户。...同时我们博客是单人博客系统,发布者肯定是文章作者,这个也应该自动设定为 admin 后台登录账户。...文章创建时间和修改时间应该根据当前时间自动生成,而现在是由人工填写,还有就是文章作者应该自动填充为后台管理员用户,那么这些自动填充数据字段就不需要在新增文章表单中出现了。...接下来是填充创建时间,修改时间和文章作者值。之前提到,文章作者应该自动设定为登录后台发布此文章管理员用户。...因为 timezone 模块函数会自动帮我们处理时区,所以我们使用django 为我们提供 timezone 模块,而不是 Python 提供 datetime 模块来处理时间。

1.1K20

django 解决model类写不到数据库,数据库无此字段问题

如果你遇到了这个错误–MySQL Strict Mode is not set for database connection ‘default’ 还有这种错误,models代码 ? ?...有两种可能,一种settings少了options,一是你models文件中加了逗号 第一种可能 settings需要添加以下字段 DATABASES = { 'default': {...'ENGINE': 'django.db.backends.mysql', 'NAME': 'mxshop', 'HOST': '127.0.0.1', 'PORT': '3306...这样就ok了 补充知识:django框架model中外键不落实到数据库 在外键字段参数添加db_constraint=False即可,数据库没有外键关系,代码依然可以按照正常外键方式使用。...解决model类写不到数据库,数据库无此字段问题就是小编分享给大家全部内容了,希望能给大家一个参考。

2.3K30

django实现模板字符串文字和自动转义

本文只考虑模板字符串,不考虑字符串带标签情况。 模板字符串文字不会自动转义,因为这里默认模板作者已经正确书写模板内容。...,均为3 < 2,但是后者超出了模板作者控制范围。...补充知识:Django view通过render将“字符串”传给页面插件时,值被截断问题 view.py中代码: # startTime = request.POST.get('startTime'...= ‘2019-10-10 01:01:01′ 传给页面formname=’startTime’时值被截断成’2019-10-10’ 其原因是value={{ startTime}} 没加双引号 改成...以上这篇django实现模板字符串文字和自动转义就是小编分享给大家全部内容了,希望能给大家一个参考。

4K30

自动化运维脚本管理和工单管理

运维平台发展逃不过几个步骤,脚本化,工具化,可视化和自动化,注意在自动阶段前,有一个阶段是可视化。 但是显然在很多时候我们脚本化做得不够好,比如代码里可能会有这样实现代码: ?...我做了如下总结: 1)为了能够快速平滑接入,脚本管理脚本语言其实不是瓶颈,都应该全面支持,比如使用perl,使用shell,SQL等,如果脚本本身很稳定,那么完全可以接入进来,总之就是这个环节要开放...平台开发功能是python,但是脚本管理不一定是python。 2)在脚本管理,脚本和菜单如何映射,这是个关键,我们可以把脚本属性参数化,比如脚本名,脚本类型等这些也是作为一种元数据来管理。...6)脚本参数管理,有的脚本是1个参数,有的是2个,其实对于后台来说,就是拿到脚本来处理,怎么做标识和匹配。 7)脚本管理,有些脚本是通用,如果希望能够持续使用,必须要提前规划好范围和类别。...早期工单肯定没有自动化运维辅助,所以肯定是有工单模块,但是早期工单模块建设肯定不够完善,基本操作和审批是脱节,那就需要完成工单自动化处理。互相促进之后,这就是一个完善链条了。

2.8K20

MyBatis-Plus属性自动填充以及前后端交互时间属性匹配问题解决

很早之前就想写,前段时间准备ACM(划水),也就没搞这些 大家都知道,MyBatis-Plus是为了简化MyBatis开发而生,这个自动填充就是在我们进行一些操作时进行某些属性自动填充(废话)。...先用时间转换来引个门,在之前使用MyBatis时候,如果我们需要把JavaDate类型转换成DataBaseDate类型,通常会这样做 @Insert("insert into user_table...= true, keyProperty = "uId", keyColumn = "u_id")//设置自增 void addUser(UserInfo userInfo); 但是这个时候每次Date...loginDate",LocalDate.class,LocalDate.now()); //也可以用 this.setFieldValByName } } 添加@TableFiled注解 在对应字段上加上对应注解...@JsonFormat 将JDKDate数据转换为指定格式字符串返回给前端

85253

用python搭建一个校园维基网站(二)—— 可编辑内容首页创建

1、manage.py是Django项目通用管理脚本(通过python manage.py 某命令参数使用)。...2、requirements.txt用于存储当前项目的依赖列表(自动生成Django和wagtail,虚拟环境(virtualenv)下可用pip freeze >> requirements.txt...:8000大部分内容就在该模板(该模板使用extends语句继承genius\templates\base.html,并使用block语句填充相应内容)。...我们WikiHome页面模型需要图中红色高亮一系列字段,其中title字段继承自Page类,不用额外添加,image字段为连接到wagtailimages.Image模型外键。...对于模板来说,它对应页面模型处于它上下文环境,在模板可以调用到该页面模型所有元素(使用Django模板语言)。我们要按照页面排版将元素填充进去。

3.5K80
领券