我正在使用 django v1.10.2
我正在尝试创建动态报告,从而将字段和条件以及主要的 orm 模型信息存储到数据库中。
我生成动态报告的代码是
class_object = class_for_name("app.models", main_model_name)
results = class_object.objects\
.filter(**conditions_dict)\
.values(*display_columns)\
.order_by(*sort_columns)\
[:50]
所以main_model_name
可以是任何东西。
这很好用,只是相关模型实际上是注册的,django-modeltranslation
并且它们的名称没有出现在正确的翻译字段中。
因此,其中一份报告main_model
是ProductVariant
。ProductVariant
有很多Pattern
。
我的显示栏是 : serial_number
, created_at
,pattern__name
前两列是属于ProductVariant
模型的字段。最后一张来自Pattern
模式模型如下所示:
from django.db import models
from django.utils.translation import ugettext_lazy as _
class Pattern(models.Model):
name = models.CharField(_('Pattern Name'), max_length=400)
serial_number = models.CharField(_('Pattern Number'), max_length=100, unique=True)
def __str__(self):
return str(self.name) + ' (' + str(self.serial_number) + ')'
class Meta:
verbose_name = _('Pattern')
verbose_name_plural = _('Patterns')
查询集调用values()
不会返回我预期zh_hans
的字段语言pattern__name
。
multilingual managers
我在http://django-modeltranslation.readthedocs.io/en/latest/usage.html#multilingual-manager阅读了有关文档,但我仍然不知道如何使这项工作。
请记住,main_model
取决于我在数据库中存储的内容,它可以是任何东西。