是否可以在Django模型中有两个verbose_names?

时间:2016-02-22 04:02:18

标签: python django django-models

我有一个像这样定义的模型......

class Message(models.Model):
    email_subject = models.CharField(max_length=100, null=False, blank=False)
    email = models.TextField(null=False, blank=False)

希望能够为每个字段分配两个单独的verbose_names(一个用英文,一个用阿拉伯语)。因此,当我创建一个ModelForm并将其呈现给我的模板时...我可以做这样的事情......

            {% for field in form %}
                <p>
                    {% if field.field.required %}
                        <label for="{{ field.arabic_verbose_name}}" class='RequiredLabel'>{{ field.name }}</label>
                    {% else %}
                        <label for="{{ field.auto_id }}">{{ field.verbose_name}}</label>
                    {% endif %}

                    {% if field.errors %}
                        <div class='FieldErrorBox'>{{ field }}</div>
                    {% else %}
                        {{ field }}
                    {% endif %}
                </p>
            {% endfor %}

这可能吗?

1 个答案:

答案 0 :(得分:0)

from django.utils.translation import ugettext_lazy

class Message(models.Model):
    email_subject = models.CharField(ugettext_lazy('Message field', 'email subject'), max_length=100, null=False, blank=False)
    email = models.TextField(ugettext_lazy('Message field', 'email address'), null=False, blank=False)    

Django internationalization可以处理这项任务。与django-modeltranslation之类的包相结合通常可以简化任务。值得做一些tutorials来连接点。在模板中使用可翻译字符串时,会使用标记(通常为{% trans %}),以便执行正确的查找。