我正在尝试编写一个测试来注册用户。我无法获得要验证的表单,因为我无法弄清楚如何向表单提交有效日期。这是违规代码:
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
,表单中的错误是“请输入有效日期。”#39;我没有在表单中覆盖clean
的{{1}}方法。这是表格中日期字段的声明:
birthdate
我怎么发送有效日期?
答案 0 :(得分:1)
您需要传递与默认input_formats
之一匹配的日期的字符串表示:
['%Y-%m-%d', # '2006-10-25'
'%m/%d/%Y', # '10/25/2006'
'%m/%d/%y'] # '10/25/06'
在你的情况下,它可能是,例如:
'birthdate': '1956-01-01'
答案 1 :(得分:0)
在Python中,日期时间和日期不是同一个对象。 datetime包含小时,分钟,秒取消日期等信息。
看看这里:https://docs.python.org/2/library/datetime.html
如果birthdate是Django中的DateField,则需要写:
'birthdate': date(1956, 1, 1)
(不要忘记为此导入datetime.date)