如何配置 Django 的 auth 用户模型以具有 UUID (Postgres DB)
How do I configure Django's auth user model to have a UUID (Postgres DB)
我正在使用 Python 3.9 和 Django 3.2。这是我的文件夹结构
+ cbapp
- settings.py
+ models
- __init__.py
- custom_user.py
- manage.py
这是我的 customer_user.py 文件的样子
$ cat models/custom_user.py
import uuid
from django.contrib.auth.models import AbstractUser
from django.db import models
class CustomUser(AbstractUser):
pass
uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
另外,我已经在我的settings.py文件中配置了这个
AUTH_USER_MODEL = 'models.CustomUser'
然而,当我运行“pythonmanage.py makemigrations”时,我得到这个错误
django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL refers to model 'models.CustomUser' that has not been installed
我不知道这是什么意思。我的 settings.py 文件中有这个
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'cbapp',
]
...
AUTH_USER_MODEL = 'models.CustomUser'
根据Django doc,替换自定义用户模型
您创建了自定义用户模型(您已经创建了)
在settings.py
中,将AUTH_USER_MODEL指向它(你在上面创建的模型),像这样:
AUTH_USER_MODEL = 'myapp.MyUser'
您的错误在这里: 而不是 AUTH_USER_MODEL = 'models.CustomUser'
写 AUTH_USER_MODEL = 'cbapp.CustomUser'
注意: 不要指向你的模型文件,而是你的 app_name
然后 model_name
.
我正在使用 Python 3.9 和 Django 3.2。这是我的文件夹结构
+ cbapp
- settings.py
+ models
- __init__.py
- custom_user.py
- manage.py
这是我的 customer_user.py 文件的样子
$ cat models/custom_user.py
import uuid
from django.contrib.auth.models import AbstractUser
from django.db import models
class CustomUser(AbstractUser):
pass
uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
另外,我已经在我的settings.py文件中配置了这个
AUTH_USER_MODEL = 'models.CustomUser'
然而,当我运行“pythonmanage.py makemigrations”时,我得到这个错误
django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL refers to model 'models.CustomUser' that has not been installed
我不知道这是什么意思。我的 settings.py 文件中有这个
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'cbapp',
]
...
AUTH_USER_MODEL = 'models.CustomUser'
根据Django doc,替换自定义用户模型
您创建了自定义用户模型(您已经创建了)
在
settings.py
中,将AUTH_USER_MODEL指向它(你在上面创建的模型),像这样:AUTH_USER_MODEL = 'myapp.MyUser'
您的错误在这里: 而不是
AUTH_USER_MODEL = 'models.CustomUser'
写AUTH_USER_MODEL = 'cbapp.CustomUser'
注意: 不要指向你的模型文件,而是你的 app_name
然后 model_name
.