python - 单元测试中的 django-money 表单字段

标签 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.']}

正确的格式是什么?

最佳答案

django-money 对他们的 MoneyField 进行了修改,它不会转换为简单的 HTML 表单字段,而是为值和值生成两个 HTML 表单字段货币代码。

您必须传递 Decimal 类型的 value(或任何可以强制转换为 Decimal 的值)和 value_currency code> 3 字符货币代码(ChoiceField 国家/地区代码)。

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

关于python - 单元测试中的 django-money 表单字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43068036/

相关文章:

django - 我可以在没有测试客户端的情况下访问测试 View 的响应上下文吗?

Django 过滤器测试

Python 3 : UnboundLocalError: local variable 'card' referenced before assignment

Python:保存列表并将其恢复用于 AI 学习应用程序

django - 为 Django RESTful API 编写功能测试

python - 查询集仅返回分配了外键的对象。Django

django - 如何将变量传递到 django 中包含的模板中

python - Python 装饰器有必要吗?

python - 如何在pygame中的 Sprite 周围保持恒定的矩形?

python - 复制模型实例和相关模型的更好方法