- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在大量 Django tuts 以及网上的任何地方,人们都会在模型类中创建如下所示的字段:
from django.db import models
from django.utils.translation import ugettext as _
class MyModel(models.Model)
created = models.DateTimeField(
_('Created'),
auto_now_add=True
)
我理解 ugettext
正在做什么,但我不明白为什么它被应用于本例中的“Created”。为什么不直接写:
created = models.DateTimeField(auto_now_add=True)
此外,“创建”是否指的是已在某处定义的内容?在此示例中,我没有看到它存在于 forms.py
中,也没有在 views.py
中传递。所以,无论它是什么,它都只存在于这个模型中 - 至少我是这么认为的。
最佳答案
我相当确定它就像您不定义该字符串一样简单,它将用于标识 ModelForm
中的字段。如果您随后在网站上使用多种语言,则该字段将不会有与其关联的翻译字符串。
因此,您可以在 forms.py
中轻松定义一个表单;
from django import forms
from .models import MyModel
class MyForm(forms.ModelForm):
"""
MyForm is a nice a simple ModelForm using
labels from MyModel.
"""
class Meta:
model = MyModel
fields = ['created', ]
# views.py
from django.views.generic.edit import CreateView
from django.core.urlresolvers import reverse_lazy
from .forms import MyForm
class MyObjCreate(CreateView):
form_class = MyForm
通过添加 ugettext
字符串,它将被拉入消息目录,然后可以对其进行翻译。至少从我的翻译经验来看这是有道理的。
查看文档,尤其是关于模型的 class Meta
的文档; https://docs.djangoproject.com/en/1.7/topics/i18n/translation/#model-verbose-names-values
关于python - 模型中 ugettext 的用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28462767/
在大量 Django tuts 以及网上的任何地方,人们都会在模型类中创建如下所示的字段: from django.db import models from django.utils.transla
您能解释一下 ugettext 和 ugettext_lazy 之间的主要区别吗? 当我尝试时 return HttpResponse(ugettext_lazy("Hello")) 我什么也没看到,
在我的 models.py 文件中,我在模型上定义了一个字段,如下所示: description = models.CharField( max_length=40, default=
from django.utils.translation import ugettext_lazy as _ _(u"I am off to school at '%s' o'clock" % ti
我正在开发一个本地化的 Django 项目,并且可以在多种语言中正常工作。现在出于某种原因,我需要调用 ugettext从它的外壳。 这是我所做的: >>> from django.conf impo
我使用 ugettext_lazy 来翻译默认的 AbstractBaseUser 字段,我发现了一个问题。我想将名为 password 的字段翻译为我的母语,但我收到的唯一结果是 django.co
我有一个相当简单的信息网站,由 Django 运行。 其页面( View )由 render_to_response 快捷方式呈现,使用方式如下: def index(request): r
我正在使用 GeoDjango 示例和 class WorldBorder .我的问题是无法打印出所选国家的名称。当我尝试执行时 from django.utils.translation impor
我正在翻译一个 Django 项目。几乎一切正常。我只是无法让 Django 收集标有 _(下划线)以外的字符串。 让我再解释一下:按照文档的规定,我正在使用 ugettext 和 ugettext_
这是一个非常基本的问题。我试图用谷歌搜索我能用简单的语言理解的答案。但这并没有帮助。我在 Django's UserCreationForm 中遇到了以下代码片段然后我才知道ugettext_lazy
看了好久的stackoverflow,第一次在这里问。 该应用程序是双语的。我在 urlpatterns 中定义了要使用 ugettext_lazy 进行翻译的 url。用户选择第一种语言和网址工作,
我正在使用 Django 1.5.1,我在翻译时遇到了一些“奇怪的行为”。我在同一个 Python 文件中使用 ugettext 和 ugettext_lazy。如果我将导入组织为: from dja
我是一名优秀的程序员,十分优秀!