<code class="language-bash">(DRF) ale@ubuntu:~/project/Aley$ <a href="https://www.gaodaima.com/tag/py" title="查看更多关于py的文章" target="_blank">py</a>thon <a href="https://www.gaodaima.com/tag/manage" title="查看更多关于manage的文章" target="_blank">manage</a>.py makemigrations users Traceback (most recent call last): File "manage.py", <a href="https://www.gaodaima.com/tag/line" title="查看更多关于line的文章" target="_blank">line</a> 22, in <module> main() File "manage.py", line 18, in main execute_from_command_line(sys.argv) File "/home/ale/Envs/DRF/lib/python3.6/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line utility.execute() File "/home/ale/Envs/DRF/lib/python3.6/site-packages/django/core/management/__init__.py", line 395, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/ale/Envs/DRF/lib/python3.6/site-packages/django/core/management/base.py", line 330, in run_from_argv self.execute(*args, **cmd_options) File "/home/ale/Envs/DRF/lib/python3.6/site-packages/django/core/management/base.py", line 368, in execute self.check() File "/home/ale/Envs/DRF/lib/python3.6/site-packages/django/core/management/base.py", line 396, in check databases=databases, File "/home/ale/Envs/DRF/lib/python3.6/site-packages/django/core/checks/registry.py", line 70, in run_checks new_errors = check(app_configs=app_configs, databases=databases) File "/home/ale/Envs/DRF/lib/python3.6/site-packages/django/contrib/auth/checks.py", line 39, in check_user_model if cls.USERNAME_FIELD in cls.REQUIRED_FIELDS: AttributeError: type object "User" has no attribute "USERNAME_FIELD" </code>
www#gaodaima.com来源gao@!dai!ma.com搞$$代^@码网搞代码
当Django迁移模型时报304错误,解决方法:
当你的继承AbstractUser类时,会使用django的用户认证,需要在项目的setting.py 中加入AUTH_USER_MODEL=”app.model”
<code class="language-python"># 用户认证 AUTH_USER_MODEL = "users.User" </code>
——————————————————————————————————————————————————
<code class="language-bash">(DRF) ale@ubuntu:~/project/Aley$ python manage.py makemigrations users Traceback (most recent call last): File "manage.py", line 22, in <module> main() File "manage.py", line 18, in main execute_from_command_line(sys.argv) File "/home/ale/Envs/DRF/lib/python3.6/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line utility.execute() File "/home/ale/Envs/DRF/lib/python3.6/site-packages/django/core/management/__init__.py", line 395, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/ale/Envs/DRF/lib/python3.6/site-packages/django/core/management/base.py", line 330, in run_from_argv self.execute(*args, **cmd_options) File "/home/ale/Envs/DRF/lib/python3.6/site-packages/django/core/management/base.py", line 368, in execute self.check() File "/home/ale/Envs/DRF/lib/python3.6/site-packages/django/core/management/base.py", line 396, in check databases=databases, File "/home/ale/Envs/DRF/lib/python3.6/site-packages/django/core/checks/registry.py", line 70, in run_checks new_errors = check(app_configs=app_configs, databases=databases) File "/home/ale/Envs/DRF/lib/python3.6/site-packages/django/contrib/auth/checks.py", line 39, in check_user_model if cls.USERNAME_FIELD in cls.REQUIRED_FIELDS: AttributeError: type object "User" has no attribute "USERNAME_FIELD" </code>
迁移模型时报 has no attribute “USERNAME_FIELD”错误时时,是因为模型继承自AbstractBaseUser,只需在模型中添加 USERNAME_FIELD= “username”
<code class="language-python">class User(BaseModel, AbstractBaseUser): username = models.CharField(max_length=128, unique=True, verbose_name="用户名") phone = models.IntegerField(verbose_name="手机号") email = models.CharField(max_length=128, verbose_name="邮箱") USERNAME_FIELD = "username" # 加上这句代码 def __str__(self): return self.username class Meta: db_table = "aley_user" verbose_name = "用户" verbose_name_plural = verbose_name </code>