Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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模型上的反射/查找不';找不到国际化(阴影)字段_Django_Django Modeltranslation - Fatal编程技术网

Django模型上的反射/查找不';找不到国际化(阴影)字段

Django模型上的反射/查找不';找不到国际化(阴影)字段,django,django-modeltranslation,Django,Django Modeltranslation,我使用CMS在运行时通过API对模型进行映射 它工作得很好,除了本地化字段,因为我使用它添加了明显未映射的“阴影”字段(它们不存在于模型本身中,而是通过“寄存器”添加的) 我能告诉我的模型它拥有这些字段吗? 它可以找到label字段,但缺少运行时动态添加的label\u fr和label\u en 这是translation.py: from modeltranslation.translator import translator, TranslationOptions from tfp_b

我使用CMS在运行时通过API对模型进行映射

它工作得很好,除了本地化字段,因为我使用它添加了明显未映射的“阴影”字段(它们不存在于模型本身中,而是通过“寄存器”添加的)

我能告诉我的模型它拥有这些字段吗? 它可以找到
label
字段,但缺少运行时动态添加的
label\u fr
label\u en

这是
translation.py

from modeltranslation.translator import translator, TranslationOptions

from tfp_backoffice.apps.org.models import Org


class OrgTranslationOptions(TranslationOptions):
  """
  See https://django-modeltranslation.readthedocs.io/en/latest/registration.html
  """
  fields = ('label',)
  required_languages = ('fr',)  # ex: {'de': ('title', 'text'), 'default': ('title',)}


translator.register(Org, OrgTranslationOptions)
我使用并且注意到,
/model\u descriptions
端点的响应只返回
标签
字段

我怀疑这就是调用端点时调用的代码

基本上,我已经安装了
django modeltransformation
jet django
应用程序,后者提供了一个API,供模型查找使用


我不知道我的问题是否必须在jet django本身中解决,或者django是否为类似的阴影字段提供了一个功能。

django modeltranslation使用了一种注册方法,如前所述,这意味着当您第一次启动django应用程序时,所有模型都会被修补。django modeltranslation初始化后,
Post.\u meta.fields
除了
text
之外,还包含翻译的字段
text\u fr
text\u de

看看jet django,当应用程序启动时,
JetAdminModelDescription
似乎也被初始化,实际的模型字段是使用
model.\u meta.get\u fields()
检索的

因此,只要jet django是在django modeltranslations之后初始化的,这些字段也应该对JetAdmin可用


确保将jet django置于django modeltranslation之后的
安装的应用程序设置中,该设置应能正常工作。

您不需要显示translation.py,它只是指定要翻译的字段的标准方式。我们需要知道的是,确切的问题是什么:您使用的是什么CMS,映射是如何发生的,哪些代码没有返回您想要的。我不知道这是进行翻译的标准方式。我认为通过
register
进行注册的方法是特定于应用程序的。对不起,我的意思是modeltranslation就是这样工作的。但是这个代码不是您的问题,您完全不清楚“模型可以找到
标签
字段,但没有找到
标签_fr
字段”是什么意思。什么代码“查找”字段?什么代码可以“映射”?谢谢,我添加了其他信息,这些字段是使用
模型检索的。\u meta.get\u fields()
。因此,如果翻译注册在JetAdmin注册之前运行,那么它应该可以工作。是否更改settings.py中应用程序的顺序就可以完成这项工作?