Django模型上的反射/查找不';找不到国际化(阴影)字段
我使用CMS在运行时通过API对模型进行映射 它工作得很好,除了本地化字段,因为我使用它添加了明显未映射的“阴影”字段(它们不存在于模型本身中,而是通过“寄存器”添加的) 我能告诉我的模型它拥有这些字段吗? 它可以找到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
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中应用程序的顺序就可以完成这项工作?