Как сериализовать локализованную дату в Джанго - PullRequest
1 голос
/ 30 марта 2011

Я создаю веб-приложение, которое нуждается в поддержке i18n.Он отображает даты и время в шаблонах, а также с помощью вызовов Ajax.

У меня для USE_I18N и USE_L10N установлено значение True и установлено «django.middleware.locale.LocaleMiddleware».В моем шаблоне, когда я задаю значение | date для набора запросов, переданного в контексте, он корректно форматируется в соответствии с локалью браузера.Когда я сериализирую вывод моей модели, это не так.Я прочитал все документы и не вижу, как это сделать.

В основном у меня есть модель с DateTimeField.Я пытаюсь вернуть его в Javascript через Ajax в локализованном формате.Я использую serialize, чтобы вернуть его, но время даты не отформатировано для локали.

См. Ниже:

Модель:

class Messages(models.Model):
    message             = models.CharField(max_length=500)
    date_created        = models.DateTimeField(auto_now_add=True)
    thread_id           = models.IntegerField(db_index=True)

Представление веб-службы:

def get_message_thread(request):
    message_thread = request.POST['message_thread']
    message_threads = Messages.objects.filter(thread_id=message_thread)
    from django.core.serializers import serialize    
    json = serialize("json", message_threads, fields=('id', 'message' 'date_created'))
    return HttpResponse(json, 'content-type:javascript/json')

Есть ли у кого-нибудь какие-нибудь идеи о том, что мне нужно делатьсделать правильно отформатированный языковой формат даты и времени доступным для моего javascript для отображения на моей странице?

Большое спасибо

Rich

1 Ответ

0 голосов
/ 30 марта 2011

Вам нужно будет изменить сериализацию, но основная идея такова:

from django.utils import formats
date_format = formats.get_format('DATE_FORMAT')

serialized_date = date.strftime(date_format)

Дополнительную информацию можно найти в документации django: Вспомогательные функции формата даты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...