python - Django testCase 中的 POST 日期值

标签 python django testing

我正在尝试编写一个测试来注册用户。我无法验证表单,因为我不知道如何向表单提交有效日期。这是有问题的代码:

class AccountManagementTest(TestCase):
    def test_signup(self):
        response = self.client.post(reverse('register'), {
            'first_name': 'Gandalf', 
            'last_name': 'TheGrey', 
            'email': 'gandalf@me.com', 
            'password1': 'SauronSucks', 
            'password2': 'SauronSucks', 
            'birthdate': datetime(1956, 1, 1),
            'tos': True})

之后我可以输出 response.content 并且表单中的错误是“请输入有效日期”。我没有覆盖表单中 birthdateclean 方法。这是表单中日期字段的声明:

birthdate = forms.DateField(
        widget=SelectDateWidget(
            years=range(this_year-90, this_year-12)[::-1]),
            required=True,)

我怎么给它发送一个有效日期?

最佳答案

您需要传递与默认值 input_formats 之一匹配的日期的字符串表示 :

['%Y-%m-%d',      # '2006-10-25'
'%m/%d/%Y',       # '10/25/2006'
'%m/%d/%y']       # '10/25/06'

在您的情况下,例如:

'birthdate': '1956-01-01'

关于python - Django testCase 中的 POST 日期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27239983/

相关文章:

Python从字符串解析int

javascript - Jasmine 期望不使用 requirejs

python - 使用列表过滤 Pandas Dataframe,但确保元素计数与列表中的计数相匹配

django - django-allauth:将多个社交帐户链接到单个用户

javascript - Wagtail/Hallo.js - 添加插件但不保存修改的内容

python - Wagtail 管理模板中的 render() 意外关键字错误

testing - 没有软件就无法调试硬件吗?

java - 如何自动化从大型数据库查询的测试? (导入或创建)

Python SQL 到 pandas DataFrame

python - 使用 Parser 替换所有 IMG 元素的 SRC