<p>我对对象级时区也有同样的问题。在</p>
<p>我找到了<a href="http://www.caktusgroup.com/blog/2014/01/09/managing-events-explicit-time-zones/" rel="nofollow">this blog entry</a>。它并不完美,但它有效!</strong>并且不太复杂。加上处理管理员处理。在</p>
<p>将片段粘贴到此处:</p>
<h3>确保表单在所需时区内处理:</h3>
^{1}$
<h3>在管理列表视图中正确显示</h3>
^{pr2}$
<h3>正确解释管理添加视图中的日期</h3>
<pre><code>class EventAdmin(admin.ModelAdmin):
# ...
# Override add view so we can peek at the timezone they've entered and
# set the current time zone accordingly before the form is processed
def add_view(self, request, form_url='', extra_context=None):
if request.method == 'POST':
tz_form = TimeZoneForm(request.POST)
if tz_form.is_valid():
timezone.activate(tz_form.cleaned_data['event_time_zone'])
return super(EventAdmin, self).add_view(request, form_url, extra_context)
</code></pre>
<h3>在管理编辑视图中正确处理时区</h3>
<pre><code>class EventAdmin(admin.ModelAdmin):
# ...
# Override change view so we can peek at the timezone they've entered and
# set the current time zone accordingly before the form is processed
def change_view(self, request, object_id, form_url='', extra_context=None):
if request.method == 'POST':
tz_form = TimeZoneForm(request.POST)
if tz_form.is_valid():
timezone.activate(tz_form.cleaned_data['event_time_zone'])
else:
obj = self.get_object(request, unquote(object_id))
timezone.activate(obj.event_time_zone)
return super(EventAdmin, self).change_view(request, object_id, form_url, extra_context)
</code></pre>