gpt4 book ai didi

python - AUTH_USER_MODEL 不接受子申请

转载 作者:行者123 更新时间:2023-12-05 07:57:35 25 4
gpt4 key购买 nike

在使用 Django 1.7.1Python 3.4 时,我的自定义用户模型出现问题。我在 apps.users.AuthUser 中声明了一个自定义用户模型。然后我有另一个应用程序 (apps.pets),它将使用 AuthUser 作为 Pet 模型中的 ForeignKey。见下文:

class Pet(models.Model):
owner = models.ForeignKey(settings.AUTH_USER_MODEL, db_index=True, blank=False, null=False)

这是我的场景:

在我的 INSTALLED_APPS 我有:“apps.users”

如果我设置 AUTH_USER_MODEL="apps.users.AuthUser",当我运行 'runserver' 时会引发异常:

File "/home/frank/.virtualenvs/myproj/lib/python3.4/site-packages/django/contrib/auth/checks.py", line 12, in check_user_model
cls = apps.get_model(settings.AUTH_USER_MODEL)
File "/home/frank/.virtualenvs/myproj/lib/python3.4/site-packages/django/apps/registry.py", line 201, in get_model
app_label, model_name = app_label.split('.')
ValueError: too many values to unpack (expected 2)

如果我设置 AUTH_USER_MODEL="users.AuthUser"运行迁移时会引发异常:

File "/home/frank/.virtualenvs/myproj/lib/python3.4/site-packages/django/db/migrations/state.py", line 89, in render
model=lookup_model,
ValueError: Lookup failed for model referenced by field pets.Pet.owner: users.AuthUser

我猜这里报告了类似的问题:https://code.djangoproject.com/ticket/19845

这是否意味着在 AUTH_USR_MODEL 设置中我必须使用“app_label.model_name”而不是“apps.app_label.model_name”?有解决办法吗?

编辑 1:我的项目结构如下:

SITE_ROOT
|-- PROJECT_ROOT/
| |-- apps/
| | |-- app1
| | |-- app2
| |-- etc/
| |-- libs/
| |-- media/
| |-- requirements/
| | |-- __init__.py
| | |-- common.py
| | |-- development.py
| | |-- production.py
| | `-- staging.py
| |-- settings/
| | |-- __init__.py
| | |-- common.py
| | |-- development.py
| | |-- production.py
| | `-- staging.py
| |-- templates/
| |-- README
| |-- __init__.py
| |-- .gitignore
| `-- manage.py

最佳答案

在您安装的应用程序中,您可以只使用您的应用程序名称,假定它位于同一目录中,无需特别提及“myapp.users”,只需“myapp”即可。

使用这个:

AUTH_USER_MODEL = 'myapp.MyAuthUserModel'

不要使用这个:

AUTH_USER_MODEL = 'myapp.models.MyAuthUserModel'

希望这对您有所帮助!

关于python - AUTH_USER_MODEL 不接受子申请,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26583616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com