django orm如何使用值并仍然使用modeltranslation

时间:2017-08-05 07:18:42

标签: django django-orm django-modeltranslation

我正在使用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_modelProductVariantProductVariant有多个Pattern

我的显示列为:serial_numbercreated_atpattern__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

我在http://django-modeltranslation.readthedocs.io/en/latest/usage.html#multilingual-manager阅读了有关multilingual managers的文档,但我仍然不知道如何使其发挥作用。

请记住,main_model可以是任何内容,具体取决于我在数据库中存储的内容。

0 个答案:

没有答案