Уведомления

Группа в Telegram: @pythonsu

#1 Март 21, 2017 05:15:07

vak
От:
Зарегистрирован: 2007-05-04
Сообщения: 262
Репутация: +  0  -
Профиль   Отправить e-mail  

annotate ?

Отправляю данные моделей (queryset) в javascript слой через ajax. Естественно (для меня), на уровне javascript более трудоемко преобразовывать в нужный строковый формат.
Есть задача: поля datetime (c timezone) “пропускать” через шаблон еще на уровне views
Посмотрел в сторону annotate, долго проверял некоторые варианты - но так и не заработало.

 def DateTimeString(vardatetime,request):
    tz = request.session["tz"]
    t = template.Template("""
        {% load tz %}
        {% timezone tz %}
        <td>{{ vardatetime|date:"d.m.Y H:i e" }}</td>
        {% endtimezone %}
    """)
    c = template.Context({'vardatetime': vardatetime, 'tz':tz})
    return t.render(c)
                data = {
                    "model":d.device_scheme.name,
                    "address":d.address.city.name,
                    "status":d.status,
                    "company":d.company.name,
                    "ports":serializers.serialize('json', d.devices_ports_set.all().annotate(datetime_str=DateTimeString(
                        F("datetime_update"),request))
                    ),
                    "slots":serializers.serialize('json', d.device_link.all()),
                    "combo":serializers.serialize('json', d.devices_combo_set.all()),
                    "properties":serializers.serialize('json', d.devices_properties_set.all()),
                }
                response_data = {"result": data}

Не совсем понимаю как правильно решить эту задачу.
Возможно annotate вообще не подходит для этого?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version