首页 > 数据库 >django 数据库迁移结束之后,就执行的代码

django 数据库迁移结束之后,就执行的代码

时间:2024-07-22 13:50:44浏览次数:13  
标签:models 数据库 django user import 迁移 create permissions

在你需要的app下面创建signals.py文件该文件下写出你需要执行的函数或类

例如

from django.db import transaction

from user import models
from logger import log


class CreatePermissions(object):
    @staticmethod
    def create_permissions(sender, **kwargs):
        permissions = ["upload", "login", "admin", "user"]
        with transaction.atomic():
            for i in permissions:
                models.Permission.objects.get_or_create(name=i, description=f"Already endowed{i} permissions")
        log.info(f"signal: create {permissions} permissions success")

然后在对应的app.py下面写入以下代码:

from django.apps import AppConfig
from django.db.models.signals import post_migrate


class UserConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'user'

    def ready(self) -> None:
        from user.signals import CreatePermissions
        # 数据库迁移结束时,就创建权限角色
        post_migrate.connect(CreatePermissions.create_permissions, sender=self)  # type: ignore

 

标签:models,数据库,django,user,import,迁移,create,permissions
From: https://www.cnblogs.com/Pyxin/p/18315866

相关文章

  • 在我将迁移应用于翻译后,我遇到了 django-parler 2.0.1 的问题,它不会在管理站点中显示
    这是我在models.py文件中的翻译设置,在我进行同步迁移后,django-parler2.0.1将不会在管理站点中显示产品字段。我目前使用的是Django3.0.3。fromdjango.dbimportmodelsfromdjango.urlsimportreversefromparler.modelsimportTranslatableModel,Translate......
  • 有没有办法让用户输入 url 查询并使用单个函数过滤数据库?
    我正在使用DjangoRest框架和PostgreSQL,构建一个返回本NBA赛季所有统计数据的API。不是有一个函数来返回每个类别的统计信息,例如:@api_view(['GET'])defsortByRebounds(request):"""Returnsallstatsinthedatabasesortedbyreboundspergame"""strin......
  • 在 Django 表单中使用正确的 Bootstrap CSS 进行单选表单输入
    如何让Django表单将正确的Bootstrap渲染到Radioselect表单输入?我在表单中传递了form-controlform-checkclassess,但生成的表单HTML对于radioselect选项并不准确。我正在寻找渲染引导程序原色和内联单选按钮。表单classPersonForm(forms.Form......
  • SpringBoot+ Sharding Sphere 轻松实现数据库字段加解密
    一、介绍在实际的软件系统开发过程中,由于业务的需求,在代码层面实现数据的脱敏还是远远不够的,往往还需要在数据库层面针对某些关键性的敏感信息,例如:身份证号、银行卡号、手机号、工资等信息进行加密存储,实现真正意义的数据混淆脱敏,以满足信息安全的需要。那在实际的业务开发过程......
  • 通过django admin添加动态字段
    我环顾了堆栈,但找不到任何答案。所以我有一个像这样的模型:classDynamicModel(models.Model):config=models.JSONField()def__str__(self):returnself.config我现在想要做的是将json字段键值对显示为独立字段,并且还能够以相同的方式编辑它们,就......
  • windows定期备份数据库脚本
    1.打开任务计划程序按Win+R,输入taskschd.msc并按回车,打开任务计划程序。2.创建基本任务在任务计划程序右侧,点击“创建基本任务...”。输入任务名称(如“备份MySQL数据库”)和描述,然后点击“下一步”。3.选择触发器选择“每天”,然后点击“下一步”。设置任务开始......
  • zabbix_appliance的数据库扩容方案
    问题:zabbix_appliance直接加载虚拟机来部署zabbix是很方便的办法,下载配置好后,监控一段时间会提示mysql存储空间不足,进去系统df一看才4G多,只好自已手动扩容.思路:虚拟机上添加一块硬盘,创建新分区并挂载到扩容目录,迁移mysql的数据库目录到扩容目录,修改mysql\php\zabbix的......
  • SpringBoot利用MyBatis连接Mysql数据库时常见启动报错
    目录报错情况报错情况一:​编辑报错情况二:解决步骤一、解决命名问题1.mapper层的id是否和Dao层的方法名字相同2.检查namespace与Dao层的文件地址相同二、解决注解问题1.检查Controller层的注解是否正确和完整2.Dao层或者Mapper层的注解3.pojo层:实体类层Data注解(用来......
  • 数据迁移(同步)-datx
    本期介绍数据迁移工具-datax的使用。1.安装datax是阿里开源的数据同步工具,常见于大数据应用。之前我们项目选型为Sqoop,但是很遗憾该工具和eureka一样早已停止维护了,所以选择使用datax。https://github.com/alibaba/DataX(推荐去GitHub上看一看,因为有很多资料可以供你更全面......
  • Oracle——navicat连接Oracle数据库报错(12514)
    2024/07/221.问题描述2.解决办法3.参考材料1.问题描述与其他厂商做数据对接时,对方提供相关视图,我navicat连接Oracle数据库时报错,其报错代码如下:ORA-12514:TNS:listenerdoesnotcurrentlyknowofservicerequestedinconnectdescriptor2.解决办法对方提供实例为hisd......