我想在帐户应用程序的model.py中添加字段时遇到麻烦。这是我的代码
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
pp = models.CharField(max_length=100, blank=True, null=True)
xx = models.CharField(max_length=100, blank=True, null=True)
当我运行迁移命令时,它显示 “表'auth_permission'已经存在”) 但是,如果我想在民意调查应用程序下的问题表中添加字段,则效果很好。
mysite是主文件夹。民意调查和帐户是其中的两个应用程序。 我首先创建了民意调查应用程序。 我可以在相同的虚拟环境和相同的数据库下运行两个应用程序和代码吗? 你能帮我吗?
答案 0 :(得分:1)
我认为您在问两个不同的问题:多个应用程序和自定义的用户模型。
好,首先要注意! 运行多个Django应用不仅是可行的,而且是正确的操作以分隔逻辑实例(例如,一个用于客户的应用,一个用于产品的应用等)
根据Django文档(https://docs.djangoproject.com/en/dev/ref/settings/#auth-user-model),实际上建议使用用户模型。
我通常会在主应用程序下添加“自定义用户”文件夹,如果该文件夹是 mysite ,那么我将在其中添加它。
确保它是可执行文件,其中包含必要的__init__.py
文件。
如果您想在其他应用程序中使用它,也可以。然后确保该应用程序在您的INSTALLED_APPS
中。
在这种情况下,您可以添加到settings.py:
AUTH_USER_MODEL = 'users.User'
要在代码中的任何位置访问用户模型,Django建议使用此模型:
from django.contrib.auth import get_user_model
User = get_user_model()
更改用户模型中间项目完全是另一回事。请参阅此处,了解Django对(https://docs.djangoproject.com/en/2.0/topics/auth/customizing/#changing-to-a-custom-user-model-mid-project)的担忧
换句话说:如果要使用自定义的用户模型,请在项目开始时进行!
我希望这会有所帮助!
答案 1 :(得分:0)
创建custum用户模型时,需要注意几件事。
您可能会让自己熟悉Express error handling
几件事要强调:
#settings.py
AUTH_USER_MODEL = 'customauth.User'
运行更改后:
python manage.py makemigrations
python manage.py migrate