gpt4 book ai didi

python - Django:在测试模式下以不同方式定义表单

转载 作者:行者123 更新时间:2023-11-28 20:09:48 25 4
gpt4 key购买 nike

我有一个自定义验证码字段。我想在测试期间从表单中删除该字段。

我最初的想法是在一个单独的设置文件中有一个 TESTING 变量,它将作为参数提供给测试运行器命令。然后,我可以做类似的事情:

class CaptchaForm(forms.Form):
notify_email = forms.EmailField(required=False)
if not settings.TESTING:
recaptcha = CaptchaField()

我相信这应该有效。

可能有更好的方法。有什么想法吗?

更新

在尝试了以下建议后,我将其添加到测试文件夹的 __init__.py 中:

    from project.app.forms import CaptchaField
CaptchaField.clean = lambda x, y: y

这有效——无需创建共享的 TESTING 设置。这看起来可以接受吗?我有理由不这样做吗?

最佳答案

您可以在单元测试类的构造函数中禁用验证码。像这样:

class MyTest(unittest.TestCase):
def __init__(self, *args, **kwargs):
super(MyTest, self).__init__(*args, **kwargs)
settings.TESTING = True

或者,例如,您可以在此构造函数中禁用验证码字段验证。

关于python - Django:在测试模式下以不同方式定义表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4292398/

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