У меня есть локализованная Django App, локализация работает хорошо и конфигурация нормально ...Модели Django __unicode__: Как вернуть значение, содержащее локализованные даты?
Для форм потребности, я использую __unicode__
метод модель для визуализации ModelChoiceFields, но как форматировать локализована дата в обратном юникоде?
В этом методе у меня нет доступа к текущему часовому поясу, как правильно отображать мой TimeSpanList для моих пользователей? В настоящее время отображается UTC. Я судимое django.template.defaultfilters.date
и Симон Charette-х django.utils.formats.localize
, не помогли, поскольку они, вероятно, не имели контекстные данные ...
class TimeSpan(models.Model):
start = models.DateTimeField(_("start"))
end = models.DateTimeField(_("end"))
def __unicode__(self):
return u"from UTC:{0} to UTC:{1}".format(self.start, self.end)
class TimeSpanChooserForm(forms.Form):
time_span = forms.ModelChoiceField(
label=_("time span"), queryset=TimeSpan.objects.all())
def __init__(self, *args, **kwargs):
self.request = kwargs.pop("request", None)
super(TimeSpanChooserForm, self).__init__(*args, **kwargs)
Как узнать текущую локаль без текущего объекта запроса, чтобы локализовать это DateTimes? (Если есть способ)
примечание: мне __unicode__
кажется единственным способом отображения записей в ModelChoiceField.
примечание 2: мне, Юдзи «Томиты» Томита комментарий лучший текущий ответ, но ему не хватает полезной Exemple ...
Вы не можете. Не используйте метод unicode в шаблоне, напрямую обращайтесь к датам. –
Но для поля выбора, обрабатываемого формой, как вы это делаете? – christophe31
Вы всегда можете отправить запрос в форму. – Brandon