问题标签 [django-hvad]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Django Rest 框架和 Django-Hvad
所以我需要为我的 DRF API 提供一些模型翻译支持,然后我开始使用 django-hvad。
它似乎适用于我的 django 应用程序,但我遇到了 DRF APi 的一些问题。
我正在尝试创建一个简单的 POST 请求,但出现错误:
Accessing a translated field requires that the instance has a translation loaded, or a valid translation in current language (en) loadable from the database
这是我的模型、序列化程序和视图集:
模型:
序列化器:
视图集:
有谁知道我怎么能解决这个问题?我也对其他已知可以工作的建议应用程序持开放态度,但我真的很想让这个工作
django - 在 ModelChoiceField 表单中使用 TranslatableModel
我有一个代表各种语言状态的模型,所以我使用 django-hvadTranslatableModel
基类。
当在表单中使用时,来自are等的event_status
字段选择必须按预期返回与描述属性相反的值。TranslatableModel
1, 2
Status.__unicode__
pk
表格.py
模型.py
我是否执行TranslatableModel
不正确?我有一次通过 Pycharm 的调试服务器运行它,其中 1 个Status
对象给了我描述,但另一个只返回了一个 id,所以我认为我在这种方法中是正确的。
django - 在一个表单集中使用 django-hvad 管理多种语言
我正在使用 django-hvad 来编辑不同语言的对象。如文档中所述,我得到了一个表单(用于对象)和一个表单集(用于不同语言的对象属性)。表单集显示在每种语言的选项卡中,这些语言使用 django-crispy-forms 构建。
只要我不使用首字母,一切都很好。我的目标是预先选择语言并隐藏语言代码字段,以便您可以输入多种语言,但您不必:
表格.py:
在 django-hvad 的某个地方,首字母被再次设置或覆盖,因此表单被绑定。这会导致无效数据,因为未填充每种语言的内容字段。只要我按照 settings.LANGUAGES 中定义的顺序设置首字母,它就可以工作,但是如果您只填写第二个选项卡/语言,这可能会产生重复的语言:如果重新加载视图,两个第一个选项卡都填充有第二种语言. 第一个是因为表单集中的预填表单,第二个是因为初始。
视图.py:
Category-model 和 Category 表单非常标准,所以我不附加它们。我真的很好奇是否有人遇到过类似的问题,或者甚至可以为一个关键问题提供解决方案:如何在表单集中动态设置首字母?
干杯,马吕斯
django - 将 PageField() 添加到翻译模型 (django-hvad) 时出现 JS 错误
将 django-cms 与 django-hvad 一起使用时遇到了一些麻烦。
我定义了 2 个 TranslatableModel:
NewsEntryLink
有一个外键到NewsEntry
. 在这些模型的管理员中,我添加了以下类(带有内联):
admin.site.register(NewsEntry, NewsEntryAdmin)
当我现在访问该管理页面时,我收到以下 JS 错误:Uncaught TypeError: undefined is not a function (index):743
并且无法添加新的内联模型(链接不存在)并且选项(页面)不可用。
你们有什么想法吗?
python - Django REST Framework 无法显示可翻译字段
我正在使用Django REST 框架和Django-hvad应用程序为基于 Django 的网站实现 REST API。
问题:REST Viewset 中的翻译字段导致错误。
请注意: 另一个问题解决并解决了类似的问题,但不适用于我安装的应用程序版本,即:
- 姜戈1.8
- hvad 1.2.0 具有(或者更确切地说声称具有)对 REST 框架的内置支持,如此处所述
- Django 休息框架3.1.1
这是我的模型:
我的urls.py
样子是这样的(为简洁起见,我将进口商品取出):
有了这些,URL/it/api/v1/websites/
给出了恼人的错误:
/it/api/v1/websites/ 上的 WrongManager 要访问未翻译模型中的“url”等已翻译字段,您必须使用翻译感知管理器。对于不可翻译的模型,您可以使用 hvad.utils.get_translation_aware_manager 获得一个。对于可翻译模型,使用 language() 方法。
注意:用/it
任何其他语言代码替换前缀没有任何帮助。
到目前为止我已经尝试过:
- 在
WebsiteViewSet
类中,为函数指定一个固定参数language()
。 - 使用TranslationMixin(一种与语言无关的序列化程序,公开所有翻译),按照此处的说明进行操作。我像这样更改了查询集行:
queryset = Website.objects.untranslated().prefetch_related('translations').all()
- 将 api url 定义移到 i18n 模式之外
但在所有情况下,它总是给出相同的错误。
我错过了什么?
python - admin 中可翻译的 Manytomany 字段生成许多查询
我正在使用 django-parler(django-hvad 的衍生产品)进行翻译。在管理中显示具有多对多关系的外键字段时,django 为每个字段运行一个查询:
因此,当有 300 个服务时,就会有尽可能多的查询。
我认为 get_queryset 上的 prefetch_related 不适用于mantomany
过滤器/列表,如果我错了,请纠正我:
对查询数量没有影响。在 parler 上启用缓存(正如作者在此处建议的那样)也无济于事,因为不会重复相同的查询,但在查询已翻译项目时会调用这些过滤器上的每个项目(ID 每次都不同)。所以,我正在寻找的是内部过滤器上的 select_related/prefetch_related 。同时,我还将审查您的应用程序,以防您已经解决了此类问题。
python - 带有管理器错误的 Django-hvad TranslatableAdmin
我正在尝试做这项工作
管理员.py
...
...
模型.py
,但我收到此错误:
[姜戈==1.8]
我究竟做错了什么?我该如何解决?
提前致谢
python - Django 如何让 haystack 使用 django-hvad
我正在开发一个需要实现搜索引擎的多语言应用程序,我选择了 haystack。
这是我要索引的模型
我不知道大海捞针如何处理hvad翻译字段
python - 管理员中的 django-hvad ForeignKey 始终显示对象 ID 而不是字段翻译
我正在使用 django-hvad 在 Django 中开发多语言应用程序。
我有两个模型,类别和帖子用于博客应用程序:
在我的 admin.py 中,我以这种方式注册我的模型:
当我在管理界面中创建新帖子时,我在类别下拉列表中有类别 ID 而不是它们的名称:
我应该怎么做才能使用翻译后的名称而不是 ID?
django - 为什么 prefetch_related() 会引发 AttributeError?
我有一个与第二个模型具有多对多关系的模型。当我尝试使用 prefetch_related 时,我得到一个 AttributeError。这些模型可以概括为:
(各种细节省略)。TranslatableModel
and来自django-hvadTranslatedFields
,虽然我不认为它们在这种情况下很重要,但我不是 100% 确定,所以我想我会包括在内。
我试图遍历的查询集是:
我得到的堆栈跟踪是:
我正在使用 Django 1.7
我的设置方式有什么看起来不对的地方吗?