我正在编写一些测试,我需要创建一些对象但是当我尝试在Django View之外创建一些对象时出现此错误
cat = Category.objects.create(catalog=c, name="Category one")
返回
TypeError: 'name_es' is an invalid keyword argument for this function
这与modeltranslation 0.6.1失败,但与0.3.2
一起使用 name
是使用modeltranslation翻译的字段。
来自文档:
单元测试使用django.utils.translation.trans_real函数 激活和取消视图功能之外的特定语言。
我试过这个:
trans_real.activate('es')
cat = Category.objects.create(catalog=c, name="Category one")
我得到同样的错误:(
任何人都知道在Django中测试基于模型转换的模型的更好方法吗?
到目前为止尝试了更多的事情:
cat = Category.objects.create(**{'catalog':c, 'name': 'Category one'})
TypeError: 'name_es' is an invalid keyword argument for this function
答案 0 :(得分:2)
您可以查看文档here
查看解决方案如果您想用所有语言创建类别名称:
x = Category.objects.populate(True).create(name='Category one')
如果你想用特定的语言创建它:
x = Category.objects.create(name_en='Category one')
这适用于django-modeltranslation版本0.6 +