【问题标题】:How to fix error testing Authentication user?如何修复错误测试身份验证用户?
【发布时间】:2022-01-09 01:02:39
【问题描述】:

我正在学习 Drf,我正在弄清楚在 Drf 中 Athuenticate 用户登录 Testapi,它显示错误 Not valid view function or pattern name。任何人都可以建议代码有什么问题吗?

URLS.PY

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('college.urls')),
    path('auth',include('rest_framework.urls'), name='rest_framework'),


]

测试.PY

USER_URL = reverse('auth')
class StudentsDetailsTestCase(APITestCase):

    def test_login_user(self):
        self.assertTrue(self.client.login(username='***', 
                        password='***'))
        response = self.client.get(USER_URL)
        self.assertEqual(response.status_code,status.HTTP_200_OK)

回溯错误

Traceback (most recent call last):
  File "C:\Users\AppData\Local\Programs\Python\Python39\lib\unittest\loader.py", line 436, in _find_test_path
    module = self._get_module_from_name(name)
  File "C:\Users\AppData\Local\Programs\Python\Python39\lib\unittest\loader.py", line 377, in _get_module_from_name
    __import__(name)
  File "C:\Users\collegedjango\MYSITE\college\tests.py", line 35, in <module>
    USER_URL = reverse('auth')
  File "C:\Users\collegedjango\venv\lib\site-packages\rest_framework\reverse.py", line 47, in reverse
    url = _reverse(viewname, args, kwargs, request, format, **extra)
  File "C:\Users\collegedjango\venv\lib\site-packages\rest_framework\reverse.py", line 60, in _reverse
    url = django_reverse(viewname, args=args, kwargs=kwargs, **extra)
  File "C:\Users\collegedjango\venv\lib\site-packages\django\urls\base.py", line 86, in reverse
    return resolver._reverse_with_prefix(view, prefix, *args, **kwargs)
  File "C:\Users\collegedjango\venv\lib\site-packages\django\urls\resolvers.py", line 729, in _reverse_with_prefix
    raise NoReverseMatch(msg)
django.urls.exceptions.NoReverseMatch: Reverse for 'auth' not found. 'auth' is not a valid view function or pattern name.


----------------------------------------------------------------------
Ran 1 test in 0.000s

FAILED (errors=1)

【问题讨论】:

    标签: python django django-rest-framework django-views


    【解决方案1】:

    您需要将它与rest_framework 一起使用,因为path('auth',include('rest_framework.urls'), name='rest_framework'), 这一行

    您可以通过reverse(rest_framework) 更新反向,也可以将行更改为path('auth',include('rest_framework.urls'), name='auth'),

    【讨论】:

    • 不,它不工作我尝试使用 rest_framework 并更改名称 = auth 也尝试显示相同的输出错误
    • ,实际上,首先它的工作页面未找到 未找到页面 (404) 请求方法:GET 请求 URL:127.0.0.1:8000/auth 使用 MYSITE.urls 中定义的 URLconf,Django 尝试了这些 URL 模式,在这个顺序:admin/ api 标记 [name='marks'] 学生 [name='student'] student_details [name='student_info'] 教师列表 [name='teacherlist'] auth login/ [name='login'] auth logout/ [name='logout'] doc/ [name='schema-swagger-ui'] 当前路径 auth 与其中任何一个都不匹配。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2019-09-13
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    相关资源
    最近更新 更多