更新Django result_list字段时区

时间:2018-08-09 20:40:49

标签: python django

我有一个带有click_time字段的模型,该字段是DateTimeField。在我的管理员中,它显示为UTC

我的目标是在管理员中将click_time显示为登录用户时区,该时区已在字段user.userprofile.timezone中设置。

当前,我创建了一个捕获标签,如下所示:

from django import template
from datetime import datetime
import pytz

register = template.Library()

@register.simple_tag
def convert_time(user_timezone, click_time):
    time = datetime.strptime(click_time, '%Y-%m-%d %H:%M:%S')
    local_tz = pytz.timezone(user_timezone)
    user_time = time.replace(tzinfo=pytz.utc).astimezone(local_tz)

    return user_time

我还创建了一个admin/app/change_list.html,看起来像这样

{% extends "admin/change_list.html" %}
{% load i18n admin_static admin_list %}
{% load capture_tags %}

{% block result_list %}
  {% if action_form and actions_on_top and cl.full_result_count %}{% admin_actions %}{% endif %}
    {% result_list cl %}
  {% if action_form and actions_on_bottom and cl.full_result_count %}{% admin_actions %}{% endif %}
{% endblock %}

我的问题是如何将convert_time标签应用于result_list cl?还是有更好的方法来做到这一点?

0 个答案:

没有答案