问题标签 [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.

0 投票
1 回答
1191 浏览

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

这是我的模型、序列化程序和视图集:

模型:

序列化器:

视图集:

有谁知道我怎么能解决这个问题?我也对其他已知可以工作的建议应用程序持开放态度,但我真的很想让这个工作

0 投票
0 回答
132 浏览

django - 在 ModelChoiceField 表单中使用 TranslatableModel

我有一个代表各种语言状态的模型,所以我使用 django-hvadTranslatableModel基类。

当在表单中使用时,来自are等的event_status字段选择必须按预期返回与描述属性相反的值。TranslatableModel1, 2Status.__unicode__pk

表格.py

模型.py

我是否执行TranslatableModel不正确?我有一次通过 Pycharm 的调试服务器运行它,其中 1 个Status对象给了我描述,但另一个只返回了一个 id,所以我认为我在这种方法中是正确的。

0 投票
0 回答
482 浏览

django - 在一个表单集中使用 django-hvad 管理多种语言

我正在使用 django-hvad 来编辑不同语言的对象。如文档中所述,我得到了一个表单(用于对象)和一个表单集(用于不同语言的对象属性)。表单集显示在每种语言的选项卡中,这些语言使用 django-crispy-forms 构建。

只要我不使用首字母,一切都很好。我的目标是预先选择语言并隐藏语言代码字段,以便您可以输入多种语言,但您不必

表格.py:

在 django-hvad 的某个地方,首字母被再次设置或覆盖,因此表单被绑定。这会导致无效数据,因为未填充每种语言的内容字段。只要我按照 settings.LANGUAGES 中定义的顺序设置首字母,它就可以工作,但是如果您只填写第二个选项卡/语言,这可能会产生重复的语言:如果重新加载视图,两个第一个选项卡都填充有第二种语言. 第一个是因为表单集中的预填表单,第二个是因为初始。

视图.py:

Category-model 和 Category 表单非常标准,所以我不附加它们。我真的很好奇是否有人遇到过类似的问题,或者甚至可以为一个关键问题提供解决方案:如何在表单集中动态设置首字母?

干杯,马吕斯

0 投票
0 回答
93 浏览

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

并且无法添加新的内联模型(链接不存在)并且选项(页面)不可用。

你们有什么想法吗?

0 投票
0 回答
745 浏览

python - Django REST Framework 无法显示可翻译字段

我正在使用Django REST 框架Django-hvad应用程序为基于 Django 的网站实现 REST API。

问题:REST Viewset 中的翻译字段导致错误。

请注意: 另一个问题解决并解决了类似的问题,但不适用于我安装的应用程序版本,即:

  1. 姜戈1.8
  2. hvad 1.2.0 具有(或者更确切地说声称具有)对 REST 框架的内置支持,如此处所述
  3. 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任何其他语言代码替换前缀没有任何帮助。

到目前为止我已经尝试过:

  1. WebsiteViewSet类中,为函数指定一个固定参数 language()
  2. 使用TranslationMixin(一种与语言无关的序列化程序,公开所有翻译),按照此处的说明进行操作。我像这样更改了查询集行: queryset = Website.objects.untranslated().prefetch_related('translations').all()
  3. 将 api url 定义移到 i18n 模式之外

但在所有情况下,它总是给出相同的错误。

我错过了什么?

0 投票
2 回答
2048 浏览

python - admin 中可翻译的 Manytomany 字段生成许多查询

我正在使用 django-parler(django-hvad 的衍生产品)进行翻译。在管理中显示具有多对多关系的外键字段时,django 为每个字段运行一个查询:

change_clinic__english____django_suit

change_clinic__english____django_suit

因此,当有 300 个服务时,就会有尽可能多的查询。

我认为 get_queryset 上的 prefetch_related 不适用于mantomany过滤器/列表,如果我错了,请纠正我:

对查询数量没有影响。在 parler 上启用缓存(正如作者在此处建议的那样)也无济于事,因为不会重复相同的查询,但在查询已翻译项目时会调用这些过滤器上的每个项目(ID 每次都不同)。所以,我正在寻找的是内部过滤器上的 select_related/prefetch_related 。同时,我还将审查您的应用程序,以防您已经解决了此类问题。

0 投票
1 回答
853 浏览

python - 带有管理器错误的 Django-hvad TranslatableAdmin

我正在尝试做这项工作

管理员.py

...

...

模型.py

,但我收到此错误:

[姜戈==1.8]

我究竟做错了什么?我该如何解决?

提前致谢

0 投票
1 回答
281 浏览

python - Django 如何让 haystack 使用 django-hvad

我正在开发一个需要实现搜索引擎的多语言应用程序,我选择了 haystack。

这是我要索引的模型

我不知道大海捞针如何处理hvad翻译字段

0 投票
0 回答
407 浏览

python - 管理员中的 django-hvad ForeignKey 始终显示对象 ID 而不是字段翻译

我正在使用 django-hvad 在 Django 中开发多语言应用程序。

我有两个模型,类别和帖子用于博客应用程序:

在我的 admin.py 中,我以这种方式注册我的模型:

当我在管理界面中创建新帖子时,我在类别下拉列表中有类别 ID 而不是它们的名称:

在管理界面创建帖子

我应该怎么做才能使用翻译后的名称而不是 ID?

0 投票
0 回答
266 浏览

django - 为什么 prefetch_related() 会引发 AttributeError?

我有一个与第二个模型具有多对多关系的模型。当我尝试使用 prefetch_related 时,我得到一个 AttributeError。这些模型可以概括为:

(各种细节省略)。TranslatableModeland来自django-hvadTranslatedFields ,虽然我不认为它们在这种情况下很重要,但我不是 100% 确定,所以我想我会包括在内。

我试图遍历的查询集是:

我得到的堆栈跟踪是:

我正在使用 Django 1.7

我的设置方式有什么看起来不对的地方吗?