首页 > 解决方案 > 翻译 django tables2 模板列标题

问题描述

嗨,我正在使用 django-tables2,我有一个表,我需要在其中翻译每列的标题。

class ModelTable(tables.Table):
    name = tables.columns.Column()
    edit = tables.TemplateColumn('<a href='{% url "edit_my_model_instance" record.id %}'>Edit</a>', verbose_name=u'Edit', )    
    delete = tables.TemplateColumn('<a href='{% url "del_my_model_instance" record.id %}'>Delete</a>', verbose_name=u'Delete', )    

    class Meta:
        model = models.Model

上面没有翻译的代码可以正常工作,但是当我像这样添加 gettext 进行翻译时:

  delete = tables.TemplateColumn('<a href='{% url "del_my_model_instance" record.id %}'>Delete</a>', verbose_name=_(u'Delete'), )    

我将 gettext 添加为 _ :verbose_name=_(u'Delete')

我收到以下错误

TypeError:“TemplateColumn”对象不可调用

问题是如果我使用tables.Column,它可以很好地进行翻译,所以问题只出在我使用TemplateColumn 时。

如果您能指导我完成此操作,我将不胜感激,谢谢。

标签: djangodjango-tables2django-i18n

解决方案


您的代码看起来与verbose_name参数非常相关,并且应该以这种方式工作。但我认为您错误地在TemplateColumn. 你应该使用:

delete = tables.TemplateColumn(
    '<a href="{% url "price-update" record.id %}">{% trans "Delete" %}</a>',
    verbose_name=_("Delete"),
)

推荐阅读