覆盖 Django 在用户模型中的默认 id



我们有一个在多主数据库环境中运行的Django项目。这意味着我们有多个项目数据库实例在不同的机器中运行,并且所有单独的更改都会传播到其他数据库。在这个设置中运行得很好,没有任何问题。

到目前为止,我们还没有使用Django的Auth工具,这意味着没有用户登录或密码。这种情况必须改变。为了在我们的复制环境中工作,你,我们需要将用户的默认id更改为类似于UUID的东西,以避免在复制发生时发生冲突。

因此,眼前的挑战是:如何更改Auth应用程序中用户模型的id字段?除此之外,我们没有任何其他具体要求。我们不需要任何额外的场地和任何东西。只是为了更改id。

如果编写我们自己的自定义用户模型是不可避免的,也许有人可以向我们推荐一些关于它的好博客文章,或者分享任何其他资源。

理想情况下,我们希望保留其他一切。包括对管理员界面、组和权限的访问。

提前感谢

您可以通过扩展此处定义的基类来创建一个新的User

from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
id = models.UUIDField()

并且在CCD_ 2中设置此处定义的CCD_

AUTH_USER_MODEL = 'myapp.User'

最新更新