【问题标题】:How can i test this url in django我如何在 django 中测试这个 url
【发布时间】:2021-02-07 01:16:08
【问题描述】:

嗨朋友们,我正在尝试测试这个网址,但我不知道怎么做,我有以下代码,但它不起作用

# Method of the test
def testViewDeleteUserIsResolved(self):
        url = reverse('inventory:viewDeleteUser', args={'idUser': tbUser.objects.first().id})
        self.assertEquals(resolve(url).func,viewDeleteUser)

# Url to try
path('viewDeleteUser/?P<idUser>[0-9a-f-]+', views.viewDeleteUser, name='viewDeleteUser'),

【问题讨论】:

  • 寻求调试帮助的问题(“为什么这段代码不起作用?”)应包括所需的行为、特定问题或错误所需的最短代码作为格式化文本在问题本身中重现。没有明确的问题陈述的问题对其他读者没有用处。请参阅:minimal reproducible example

标签: python django unit-testing


【解决方案1】:

在 Django 应用程序中,您必须创建一个 url.py 文件,其中所有 url 都存在,您必须将 path() 指令放入该文件中。

那么你的函数需要在views.py文件中,同时考虑到函数的名称必须与你在path()中声明的名称相同,因为我看到你正在使用视图。 viewDeleteUser 所以在 views.py 文件中你需要一个这样的函数:

def viewDeleteUser:

【讨论】:

    【解决方案2】:

    我不知道reverse('inventory:viewDeleteUser') 代表什么。我也是 Django 的新手,但我认为如果将其更改为 reverse('viewDeleteUser') 会起作用。

    tests.py

    from django.urls import reverse
    from .views import viewDeleteUser
    def testViewDeleteUserIsResolved(self):
            url = reverse('viewDeleteUser', args={'idUser': tbUser.objects.first().id})
            self.assertEquals(resolve(url).func,viewDeleteUser)
    

    urls.py

    from django.urls import path
    from . import views
    urlpatterns = [
        path('viewDeleteUser/?P<idUser>[0-9a-f-]+', views.viewDeleteUser, name='viewDeleteUser'),
    ]
    

    【讨论】:

      猜你喜欢
      • 2016-06-14
      • 1970-01-01
      • 2020-02-06
      • 2013-02-24
      • 1970-01-01
      • 1970-01-01
      • 2016-06-01
      • 2021-10-17
      • 2011-04-12
      相关资源
      最近更新 更多