1

我有一个支持翻译字段的模型,它作为过滤器字段包含在相关模型的管理定义中;

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因此将其与覆盖一起使用可能是一种解决方案。

4

0 回答 0