- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在几个模型上使用 django-parler。通常,您将 parler 应用于标题、名称等字段,当然您希望能够在 Django 管理中对这些字段进行排序。
我最接近的是通过覆盖 ModelAdmin 上的 queryset 方法,但这似乎是一种非常粗糙的方法。此外,它只设置默认排序,您不能单击标题排序字段。
class MyModelAdmin(TranslatableAdmin):
list_display = ['title', 'language_column']
def get_queryset(self, request):
language_code = settings.LANGUAGE_CODE
qs = Grant.objects.translated(language_code).order_by('translations__title')
return qs
最佳答案
这也是我们正在努力的领域。您的示例非常适合排序,因为您使用 .translated(..)
将列表限制为一种语言。 .
要对事物进行排序,您可以遵循标准 ModelAdmin 逻辑,其中过滤列表:
class MyAdmin(TranslatableAdmin):
list_display = ('title_column', ...)
def title_column(self, object):
return object.title
title_column.short_description = _("Title")
title_column.admin_order_field = "translations__title"
def get_queryset(self, request):
# Limit to a single language!
language_code = self.get_queryset_language(request)
return super(MyAdmin, self).get_queryset(request).translated(language_code)
.order_by('translations__title')
将不起作用,因为您可以先点击翻译行或后备行。这样的事情只能通过自定义 SQL 来实现。例如:
SELECT project.id,
translation.language_code,
translation.title,
fallback.title,
COALESCE(translation.title, fallback.title) AS order_title
FROM "myapp_project" AS project
LEFT OUTER JOIN "myapp_project_translation" AS translation ON (translation.master_id = project.id AND translation.language_code = 'nl')
LEFT OUTER JOIN "myapp_project_translation" AS fallback ON (fallback.master_id = project.id AND fallback.language_code = 'en')
ORDER BY order_title
.extra()
和
admin_order_field
你也许可以让它工作,但使用
.translated()
肯定会让事情变得更容易。
关于django - 在管理员中使 django-parler 字段可排序的首选方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29909036/
出于某种原因,我在添加到管理员时没有看到任何语言选项卡。我正在使用 Django 1.9.10。我使用的是 django-hvad,但决定尝试 parler。我在一个新项目中尝试了完全相同的代码并且它
我的模型具有使用 Django Parler 的可翻译字段,现在我正在尝试创建用于单元测试的对象。这是我的示例模型 class Federation(TranslatableModel): t
我的 Django 应用程序也必须是可翻译的、静态页面和模型。为了翻译模型,我正在使用 django-parler 应用程序。这工作正常,但对于简单模型,我的意思是,不从抽象模型类继承的模型。 假设我
我在几个模型上使用 django-parler。通常,您将 parler 应用于标题、名称等字段,当然您希望能够在 Django 管理中对这些字段进行排序。 我最接近的是通过覆盖 ModelAdmin
我有一个 django 1.8 实例(和 python 2),我正在使用 django-parler 进行翻译。我想自定义管理界面(我想使用 django-autocomplete-light,但这不
当我尝试使用 django 管理界面添加新的 Book 时,django-parler 引发此错误。 models.py from django.db import models from djang
我是一名优秀的程序员,十分优秀!