我有一个支持翻译字段的模型,它作为过滤器字段包含在相关模型的管理定义中;
class Event(TranslatableModel):
""" The Event model. """
translations = TranslatedFields(
title = models.CharField(
verbose_name=_("Title"),
max_length=255,
db_index=True
)
)
@admin.register(Participant)
class ParticipantAdmin(admin.ModelAdmin):
list_filter = (
'notified',
'completed',
'enabled',
'user__client',
'events__title',
)
@admin.register(Event)
class EventAdmin(TranslatableAdmin):
list_display = (
'title_', 'date', 'enabled'
)
这会导致WrongManager
来自 HVAD 的错误;
hvad.exceptions.WrongManager: To access translated fields like 'title' from an untranslated model, you must use a translation aware manager. For non-translatable models, you can get one using hvad.utils.get_translation_aware_manager.
For translatable models, use the language() method.
我发现了一些关于django-hvad github 问题的讨论,这表明需要重写get_search_results()
以处理自定义功能。这是进行搜索/过滤的最佳方式吗?我有一个语言属性,User
因此将其与覆盖一起使用可能是一种解决方案。