Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django.core.exceptions.ImpropertlyConfigured:请求设置身份验证用户模型,但未配置设置_Python_Django_Unit Testing_Pytest - Fatal编程技术网

Python django.core.exceptions.ImpropertlyConfigured:请求设置身份验证用户模型,但未配置设置

Python django.core.exceptions.ImpropertlyConfigured:请求设置身份验证用户模型,但未配置设置,python,django,unit-testing,pytest,Python,Django,Unit Testing,Pytest,我在测试定义为AUTH\u User\u model=“accounts.User” 而accounts.models就是代码 import os from django.contrib.auth.models import AbstractUser from django.contrib.auth.models import UnicodeUsernameValidator from django.core.validators import MinLengthValidator from

我在测试定义为
AUTH\u User\u model=“accounts.User”

accounts.models
就是代码

import os

from django.contrib.auth.models import AbstractUser
from django.contrib.auth.models import UnicodeUsernameValidator
from django.core.validators import MinLengthValidator
from django.db import models
from django.utils.translation import gettext_lazy as _


class Avatar(models.Model):
    photo = models.ImageField(upload_to="avatars")

    def __str__(self):
        return os.path.basename(self.photo.name)


class User(AbstractUser):
    username = models.CharField(
        _("username"),
        max_length=150,
        unique=True,
        help_text=_(
            "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
        ),
        validators=[UnicodeUsernameValidator(), MinLengthValidator(3)],
        error_messages={"unique": _("A user with that username already exists."),},
    )
    avatar = models.ForeignKey(
        "Avatar", null=True, blank=True, on_delete=models.PROTECT
    )
    is_guest = models.BooleanField(default=False)

    class Meta:
        ordering = ["-id"]
当我在test_models.py中使用
$python-m pytest
并在文件中使用以下代码进行测试时

from django.conf import settings


def test_custom_user_model():
    assert settings.AUTH_USER_MODEL == "accounts.User"
这些是终端上的错误

$ python -m pytest
========================================================================= test session starts ==========================================================================
platform win32 -- Python 3.9.1, pytest-6.2.3, py-1.10.0, pluggy-0.13.1
rootdir: C:\ProjectCode\Main-Project\Django-REST-Framework-React-BoilerPlate
plugins: cov-2.11.1, django-4.2.0
collected 1 item

accounts\tests\test_models.py F                                                                                                                                   [100%]

=============================================================================== FAILURES =============================================================================== 
________________________________________________________________________ test_custom_user_model ________________________________________________________________________ 

    def test_custom_user_model():
>       assert settings.AUTH_USER_MODEL == "accounts.User"

accounts\tests\test_models.py:5:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _  
venv\lib\site-packages\django\conf\__init__.py:82: in __getattr__
    self._setup(name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _  

self = <LazySettings [Unevaluated]>, name = 'AUTH_USER_MODEL'

    def _setup(self, name=None):
        """
        Load the settings module pointed to by the environment variable. This
        is used the first time settings are needed, if the user hasn't
        configured settings manually.
        """
        settings_module = os.environ.get(ENVIRONMENT_VARIABLE)
        if not settings_module:
            desc = ("setting %s" % name) if name else "settings"
>           raise ImproperlyConfigured(
                "Requested %s, but settings are not configured. "
                "You must either define the environment variable %s "
                "or call settings.configure() before accessing settings."
                % (desc, ENVIRONMENT_VARIABLE))
E           django.core.exceptions.ImproperlyConfigured: Requested setting AUTH_USER_MODEL, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

venv\lib\site-packages\django\conf\__init__.py:63: ImproperlyConfigured
======================================================================= short test summary info ======================================================================== 
FAILED accounts/tests/test_models.py::test_custom_user_model - django.core.exceptions.ImproperlyConfigured: Requested setting AUTH_USER_MODEL, but settings are not co...
========================================================================== 1 failed in 0.61s =========================================================================== 
$python-m pytest
==================================================================================================================测试会话开始==========================================================================
平台win32——Python 3.9.1、pytest-6.2.3、py-1.10.0、Plugy-0.13.1
rootdir:C:\ProjectCode\Main Project\Django REST Framework React样板文件
插件:cov-2.11.1、django-4.2.0
收集1项
accounts\tests\test\u models.py F[100%]
======================================================================================================================================================================================================================================================================================================================================================================================================================================================
________________________________________________________________________测试\自定义\用户\模型\用户\用户\用户\模型\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户\用户
def test_custom_user_model():
>assert settings.AUTH\u USER\u MODEL==“accounts.USER”
帐户\测试\测试\模型。py:5:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _  
venv\lib\site packages\django\conf\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\__
自我设置(名称)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _  
self=,name='AUTH\u USER\u MODEL'
def_设置(自身,名称=无):
"""
加载环境变量指向的设置模块。此
如果用户没有设置,则在第一次需要设置时使用
手动配置设置。
"""
设置\u模块=os.environ.get(环境\u变量)
如果没有,请选择设置\u模块:
desc=(“设置%s”%name)如果name else“设置”
>提高配置不当(
已请求%s,但未配置设置
“您必须定义环境变量%s”
“或调用设置。在访问设置之前配置()
%(描述,环境变量)
E django.core.exceptions.impropertlyconfigured:请求设置AUTH_USER_MODEL,但未配置设置。在访问设置之前,必须定义环境变量DJANGO_SETTINGS_MODULE或调用SETTINGS.configure()。
venv\lib\site packages\django\conf\\ uuuuu init\ uuuuu.py:63:配置不正确
========================================================================================================================================================================================================================================================================================================================================================================
失败的帐户/tests/test_models.py::test_custom_user_model-django.core.exceptions.impropertlyconfigured:请求设置AUTH_user_model,但设置不正确。。。
=================================================================================================================================================================================================================================================================================================================================================================================================================================

因为我在测试方面不是很好,但现在的问题是,我以错误的方式测试它,或者正如django所建议的,设置配置中存在问题,但是,代码在中运行良好,没有任何错误,但我也需要通过测试。

人们通常使用
manage.py
来运行与Django相关的东西,因为它执行各种初始设置,针对您的问题,它有一行类似的代码(根据项目名称略有不同):

然后通过在终端/cmd中运行以下行来运行它们:

python manage.py test

您是否在settings.py中设置了
AUTH_USER_MODEL
?在settings.py AUTH_USER_MODEL=“accounts.USER”Thanx中设置了答案@Abdul Aziz Barkat
os.environ.setdefault('DJANGO_SETTINGS_MODULE', '<PROJECT_NAME_HERE>.settings')
from django.test import TestCase
from django.conf import settings


class SettingsTestCase(TestCase):
    def test_custom_user_model(self):
        self.assertEqual(settings.AUTH_USER_MODEL, "accounts.User")
python manage.py test