gpt4 book ai didi

python - 处理 Django 单元测试用例中的可选 url 参数

转载 作者:太空宇宙 更新时间:2023-11-04 08:59:20 25 4
gpt4 key购买 nike

我创建了一个带有可选参数的动态 Url

例如,如果我的网址是 www.example.com/getTest/1/现在 url 中的这个 1 是可选的,为了在我使用 None like 的 View 中处理这个问题

def function(request, id=None):
pass

因此,如果 URL 中没有 id,那么该函数仍然适用于我。但是我在单元案例中测试时遇到了问题。如果我将 url 用作 url = reverse('yescourse:academypage_url', args=[None]) 它会给我错误

NoReverseMatch:找不到带有参数“(‘new’, None)”和关键字参数“{}”的“academypage_url”。

所以请告诉我如何在测试用例或反向中处理这些可选的 url。

编辑:

 url(r'^getTest/(?P<action>\w+)/(?P<id>\d*)$', 'app.views.create_edit_academypage', name='academypage_url'),

最佳答案

您将 View 函数的 id 参数设为可选,但它在 url 模式中不是可选的。您首先需要将您的模式重写为:

r'^getTest/(?P<action>\w+)/(?P<id>\d+)?$'

=> 整个“id”子模式是可选的,但如果不是,则它必须匹配一个或多个数字。

完成后,您可以通过不传递任何 argskwargs 参数来反转 url:

url = reverse('yescourse:academypage_url')

或者传递一个空列表

url = reverse('yescourse:academypage_url', args=[])

或传递 None

url = reverse('yescourse:academypage_url', args=None)

通过传递包含None的列表。

关于python - 处理 Django 单元测试用例中的可选 url 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27059843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com