单位测试中的django-money表单字段

时间:2017-03-28 11:12:05

标签: python django django-testing

我正在使用django-money并且我有一个货币字段(value = MoneyField(…))我想以模型形式进行测试。这是代码:

def test_post_valid(self):
    data = {'value': Money('99.99', currency='GBP'), }
    response = self.client.post(url, data)

我在表单解析代码中遇到错误:

(Pdb++) form.errors                                                             
{u'value': [u'This field is required.']}

正确的格式是什么?

1 个答案:

答案 0 :(得分:3)

django-money使用MoneyField进行黑客攻击,而value无法转换为简单的HTML表单字段,而是为值和货币代码生成两个HTML表单字段。

您必须传递Decimal Decimal类型(或任何可以强制转换为value_currency的值)和ChoiceField 3个字符的货币代码({{ 1}}国家代码)。

def test_post_valid(self):
    data = {'value_0': '99.99', 'value_1': 'GBP' }
    response = self.client.post(url, data)