我有一个带有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?还是有更好的方法来做到这一点?