Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django orm如何使用值并仍然使用modeltranslation_Django_Django Orm_Django Modeltranslation - Fatal编程技术网

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

django orm如何使用值并仍然使用modeltranslation,django,django-orm,django-modeltranslation,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

我正在使用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\u model\u name
可以是任何东西

这非常有效,只是相关模型实际上是在
django modeltranslation
中注册的,并且它们的名称没有显示在正确的翻译字段中

因此,对于其中一个报告,
main\u model
ProductVariant
ProductVariant
有许多
模式

我的显示列是:
序列号
处创建,
模式

前两列是属于
ProductVariant
model的字段。 最后一个来自
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()
不会返回字段
pattern\uu name
所需的语言
zh\u hans

我在上阅读了有关
多语言管理者的文档,但我仍然不知道如何实现这一点


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

为包编写修补程序可能比编写变通解决方案要好,因为包似乎没有足够的文档记录,并且存在相关问题。当您调用values()Django等待获取字符串静态字段名时,在您的情况下,它是一个模式名或其他东西。在display_列上,当您尝试获取默认字段名的值时,应该传递fieldname+“_lang”,正如我所知,ORM为您提供默认的lang field-en。