【问题标题】:Missing 'path' argument in get() callget() 调用中缺少 \'path\' 参数
【发布时间】:2022-11-30 19:27:40
【问题描述】:

我正在尝试在 Django 中测试我的视图,当我运行它时出现错误

from django.test import TestCase, Client
from django.urls import reverse
from foodsystem_app.models import discount,menu
import json

class TestViews(TestCase):
    
    def test_login_GET(self):
        client = Client

        response = client.get(reverse('login'))

        self.assertEquals(response.status_code,200)
        self.assertTemplateUsed(response,'foodsystem/login.html')
    response = client.get(reverse('login'))
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: Client.get() missing 1 required positional argument: 'path'

----------------------------------------------------------------------
Ran 4 tests in 0.005s

FAILED (errors=1)

我不确定应该将什么作为路径名传递。这是我正在测试的代码

def login_request(request):
    if request.method == "POST":
        form = AuthenticationForm(request, data=request.POST)
        if form.is_valid():
            username = form.cleaned_data.get('username')
            password = form.cleaned_data.get('password')
            user = authenticate(username=username, password=password)
            if user is not None:
                login(request, user)
                messages.info(request, f"You are now logged in as {username}.")
                return redirect("main:homepage")
            else:
                messages.error(request,"Invalid username or password.")
        else:
            messages.error(request,"Invalid username or password.")
    form = AuthenticationForm()
    return render(request=request, template_name="login.html", context={"login_form":form})

【问题讨论】:

  • 您正在将 client 设置为 Client 类,而不是初始化实例。因此,get 的第一个参数通常是self,现在传递给reverse('login')。通过添加括号修复它:client = Client()
  • 谢谢!!那行得通

标签: python django


【解决方案1】:

您需要实例化 Client 类,您目前只是直接引用该类。

client = Client()

【讨论】:

    猜你喜欢
    • 2017-02-22
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    相关资源
    最近更新 更多