zoukankan      html  css  js  c++  java
  • 修改Django自带auth模块的表名

      项目基于一个已有的数据库进行开发,原来的开发框架是web2py,也自带了auth模块,所以原来的数据库中也有auth相关的表。在对Django进行migrate时就产生了冲突(因为库中已经有auth_user等三个表且结构不完全一样),为了不对原来的功能造成影响于是修改django自带auth模块的表名。

    方法如下:

    1.找到auth模块位置:Python安装环境目录/lib/python3.x/site-packages/django/contrib/auth

    2.将auth目录下的migrations目录清空(__init__.py除外)

    3.修改models.py文件(先备份一下)

    依次找到User、Permission、Group三个model,在model的class Meta中增加db_table = "表名",例如Group

    class Group(models.Model):
        """
        注释....
        """
        name = models.CharField(_('name'), max_length=150, unique=True)
        permissions = models.ManyToManyField(
            Permission,
            verbose_name=_('permissions'),
            blank=True,
        )
    
        objects = GroupManager()
    
        class Meta:
            verbose_name = _('group')
            verbose_name_plural = _('groups')
            db_table = "dj_auth_group"           #自定义表名
    
        def __str__(self):
            return self.name
    
        def natural_key(self):
            return (self.name,)
    

     再次执行python manage.py makemigrations / python manage.py migrate,数据库中auth模块相关的表名就都变化啦。

  • 相关阅读:
    解决Tomcat请求中文乱码的问题
    Bootstrap 兼容 IE
    Spring+MyBatis多数据源配置实现
    年度总结与计划
    AJAX 提交表单以及文件上传
    移动端Web开发调试工具:Chrome DevTools
    SpringMVC 之 @ResponseBody 和 @RequestBody
    goland快键键防忘
    MySQL日志文件影响数据库的各种类型活动
    何为云计算
  • 原文地址:https://www.cnblogs.com/wurijie/p/13510880.html
Copyright © 2011-2022 走看看