0

我正在编写一些测试,我需要创建一些对象,但是当我尝试在 Django 视图之外创建一些对象时出现此错误

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是使用模型翻译翻译的字段。

从文档:

单元测试使用 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
4

1 回答 1

2

您可以通过查看此处的文档来查看解决方案

如果要创建所有语言的类别名称:

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

如果您想以特定语言创建它:

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

这适用于 django-modeltranslation 版本 0.6+

于 2013-10-25T14:19:38.173 回答