使用modeltranslation在视图外创建Django对象

时间:2013-09-25 15:25:46

标签: python django django-modeltranslation django-1.6

我正在编写一些测试,我需要创建一些对象但是当我尝试在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中测试基于模型转换的模型的更好方法吗?

EDITED

到目前为止尝试了更多的事情:

cat = Category.objects.create(**{'catalog':c, 'name': 'Category one'})
TypeError: 'name_es' is an invalid keyword argument for this function

1 个答案:

答案 0 :(得分:2)

您可以查看文档here

查看解决方案

如果您想用所有语言创建类别名称:

x = Category.objects.populate(True).create(name='Category one')

如果你想用特定的语言创建它:

x = Category.objects.create(name_en='Category one')

这适用于django-modeltranslation版本0.6 +