我是Django的新手,在我的绳索结束时真的需要一些帮助。
我不知道如何使用“基于类的视图”并将传入的datetimefield从我的MySQL数据库更改为它似乎需要的时区支持条目。数据库以UTC格式存储,我的系统在PST上。
我收到此错误:
当时区支持处于活动状态时,DateTimeField收到了一个天真的日期时间(2012-09-01 00:00:00)
在我的MonthArchiveView,DayArchiveView,DateDetailView上。出于某种原因,我的ArchiveIndexView,基于YearArchiveView类的视图工作正常。
这是我的模特:
class blogpost(models.Model):
blog_title = models.CharField(max_length=200)
blog_slug = models.SlugField(unique_for_date='blog_pub_date', max_length=200)
blog_content = models.TextField()
blog_pub_date = models.DateTimeField(default=datetime.now())
blog_category = models.ForeignKey('blogcategory')
以下是我的观点之一:
class ThoughtsDetailView(DateDetailView):
template_name='thoughts/thoughts_detail.html'
queryset = blogpost.objects.all()
date_field = 'blog_pub_date'
slug_field = 'blog_slug'
context_object_name = 'thoughts_detail'
month_format = '%m'
allow_future = 'true'
以下是一个示例模板:
{% block content-inner-left %}
<h1>{{ thoughts_detail.blog_title }}</h1>
<div id="blogpost">
<p class="blogsmalldate">[ Posted on {{ thoughts_detail.blog_pub_date|date:"l, F dS, Y" }}, {{ thoughts_detail.blog_pub_time|date:"g:i a" }} ]</p>
<br />
<p>{{ thoughts_detail.blog_content|safe|linebreaks }}</p>
</div>
{% endblock content-inner-left %}
有人可以帮助我了解如何修复我的日期详细信息视图,使其保持基于类的视图,然后我可以找出其他视图。我甚至尝试使用PYTZ,但是不了解如何更改基于类的视图以使用它。谢谢....
答案 0 :(得分:2)
问题不在视图中,而是在没有时区信息的情况下将日期存储在数据库中,而Django设置为支持时区。如果您不需要时区支持,只需在settings.py中设置USE_TZ = False
;如果这样做,请确保数据库存储带有时区信息的日期。有关详细信息,请访问https://docs.djangoproject.com/en/1.4/topics/i18n/timezones/#naive-and-aware-datetime-objects