使用Django-hvad搜索或过滤翻译的关系

时间:2015-12-01 11:07:06

标签: django translation django-hvad

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

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'
    )

这会导致HVAD的WrongManager错误;

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问题上发现了一些discussion,这表明需要覆盖get_search_results()来处理自定义功能。这是搜索/过滤的最佳方式吗?我在User上有一个语言属性,所以使用覆盖可能是一个解决方案。

0 个答案:

没有答案