在settings.py中从位于apps文件夹内的应用程序设置AUTH_USER_MODEL。

3

我是新手,正在学习Django。我试图在其中一个应用程序中扩展用户类,但我遇到了麻烦,无法从setting.py重定向到包含我的AbstractUser的模型。

我的Nproject:

  -apps:
   --profile:
    ---__init__.py
    ---apps.py
    ---forms.py
    ---models.py
    ---urls.py
    ---views.py
   --apps1
 -media 
 -static    
 -templates 
 -Nproject:
  --__init__.py
  --settings.py
  --urls.py
  --wsgi.py

apps.profile.models 中的模型

from django.db import models
from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
    address = models.CharField(max_length=255)
    def __str__(self):
        return '%s %s' % (self.email, self.username)

setting.py,我认为这是我的错误。

AUTH_USER_MODEL = 'apps.User'   #not working

我认为错误在于 AUTH_USER_MODEL,我不知道如何正确地引用模型User。
调研了一些网站并告诉我应该使用init.py文件,但它没有起作用。
apps.profile中的init。
from .models import User

错误:

Traceback (most recent call last):                                                                                                                          
  File "./manage.py", line 22, in <module>                                                                                                                  
    execute_from_command_line(sys.argv)                                                                                                                     
  File "/home/projects/.virtualenvs/Nproject/lib/python3.6/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line            
    utility.execute()                                                                                                                                       
  File "/home/projects/.virtualenvs/Nproject/lib/python3.6/site-packages/django/core/management/__init__.py", line 347, in execute                              
    django.setup()                                                                                                                                          
  File "/home/projects/.virtualenvs/Nproject/lib/python3.6/site-packages/django/__init__.py", line 24, in setup                                                 
    apps.populate(settings.INSTALLED_APPS)                                                                                                                  
  File "/home/projects/.virtualenvs/Nproject/lib/python3.6/site-packages/django/apps/registry.py", line 89, in populate                                         
    app_config = AppConfig.create(entry)                                                                                                                    
  File "/home/projects/.virtualenvs/Nproject/lib/python3.6/site-packages/django/apps/config.py", line 90, in create
    module = import_module(entry)
  File "/home/projects/.virtualenvs/Nproject/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 978, in _gcd_import
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load
  File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
  File "/home/projects/Nproject/apps/perfil/__init__.py", line 1, in <module>
    from .models import User
  File "/home/projects/Nproject/apps/perfil/models.py", line 2, in <module>
    from django.contrib.auth.models import User
  File "/home/projects/.virtualenvs/Nproject/lib/python3.6/site-packages/django/contrib/auth/models.py", line 2, in <module>
    from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
  File "/home/projects/.virtualenvs/Nprojects/lib/python3.6/site-packages/django/contrib/auth/base_user.py", line 47, in <module>
    class AbstractBaseUser(models.Model):
  File "/home/projects/.virtualenvs/Nproject/lib/python3.6/site-packages/django/db/models/base.py", line 100, in __new__
    app_config = apps.get_containing_app_config(module)
  File "/home/projects/.virtualenvs/Nproject/lib/python3.6/site-packages/django/apps/registry.py", line 244, in get_containing_app_config
    self.check_apps_ready()
  File "/home/projects/.virtualenvs/Nproject/lib/python3.6/site-packages/django/apps/registry.py", line 127, in check_apps_ready
    raise AppRegistryNotReady("Apps aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.

附加数据: -Django 2.1 -Python 3.6.5

1个回答

1
< p > AUTH_USER_MODEL 的正确名称字符串应为 appname.modelname。在您的情况下,我想它是 'profile.user'(如果您自己更改了应用程序名称,则可能会有所不同)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接