当我想要出现注册错误时Manager isn't available; 'auth.User' has been swapped for 'members.CustomUser',我的代码有问题,我尝试解决其他问题,例如经理不可用;'auth.User' 已被替换为 'members.CustomUser' 但他们都要求替换User = User = get_user_model(),但我没有User在我的代码中使用任何内容,或者我不知道我在哪里使用了 that.im new 在 django 、 python 、 js 等中,所以如果我的问题很愚蠢请原谅我。
有关更多信息:1)我使用Django 注册教程来创建注册方法。首先,它运行良好,但在我扩展我的作业项目后,我收到错误。2)在其他应用程序(“产品”和“搜索”)中,没有我不导入用户的地方,甚至我也不使用 CustomUser ,因为不需要与用户一起工作在此应用程序中。memebers只需使用 User 和 CustomUser。
模型.py:
from django.contrib.auth.models import AbstractUser
class CustomUser(AbstractUser):
def __str__(self):
return self.email
class Meta:
verbose_name = "member"
verbose_name_plural = "members"
Run Code Online (Sandbox Code Playgroud)
设置.py:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'card.apps.CardConfig',
'members.apps.MembersConfig',
'search.apps.SearchConfig',
'products.apps.ProductsConfig',
'rest_framework',
]
AUTH_USER_MODEL = …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Ubuntu 18.04 中将 Celery 作为服务运行,使用安装在env系统范围内的 Django 2.1.1 和 Celery 4.1.1 以及安装的 Celery 4.1.0。我将继续本教程,将 Celery 作为服务运行。这是我的 Django 项目树:
hamclassy-backend\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 apps\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 env\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 bin\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 celery\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 hamclassy\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 celery.py\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 settings-dev.py\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 settings.py\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 urls.py\n \xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 wsgi.py\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 manage.py\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 media\nRun Code Online (Sandbox Code Playgroud)\n\n这是 celery.py :
\n\nfrom __future__ import absolute_import, unicode_literals\nimport os\nfrom celery import Celery\nos.environ.setdefault(\'DJANGO_SETTINGS_MODULE\', \'hamclassy.settings\')\n\napp = Celery(\'hamclassy\')\n\napp.config_from_object(\'django.conf:settings\', namespace=\'CELERY\')\napp.autodiscover_tasks()\nRun Code Online (Sandbox Code Playgroud)\n\n这是/etc/systemd/system/celery.service:
\n\n[Unit]\nDescription=Celery …Run Code Online (Sandbox Code Playgroud) 我是 Django 框架的新手。\n当我MEDIA_ROOT = os.path.join(BASE_DIR, \'media\'),在设置中使用命令时,尝试在http://127.0.0.1:8000/admin/products/product中上传图像时遇到以下错误/添加/ (管理模式):
_getfullpathname: path should be string, bytes or os.PathLike, not tuple
当我尝试时,我发现删除 MEDIA_ROOT=... 也会消除错误,并且图像将正确放置在媒体文件夹的路径上。\n我认为使用 MEDIA_ROOT 的原因是为了了解媒体文件的路径对姜戈来说,但是:
\n\n1)为什么我使用的时候会遇到错误
\n\n2) 为什么我删除这个命令,一切都很顺利?\n谢谢
\n\n设置.py
\n\nBASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))\nMEDIA_URL = \'/media/\'\nMEDIA_ROOT = os.path.join(BASE_DIR, \'media\'),\nSTATIC_URL = \'/static/\'\nSTATIC_ROOT = os.path.join(BASE_DIR, \'static\'),\nRun Code Online (Sandbox Code Playgroud)\n\n错误屏幕截图是\n getfullpathname:路径应该是字符串、字节或os.PathLike,而不是元组
\n\n项目/urls.py
\n\nfrom django.urls import path, include\nfrom django.conf.urls.static import static\nfrom django.conf import settings\n\nurlpatterns = [\n#url will be here\n]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)\nRun Code Online (Sandbox Code Playgroud)\n\n我的 models.py 中只有一个图像字段:
\n\nfrom django.db import …Run Code Online (Sandbox Code Playgroud)