我對Django很新,在我的繩索末端,真的需要一些幫助。基於類查看MySQL DateTimeField收到一個天真的日期時間
我不知道如何使用「基於類的視圖」,並將來自我的MySQL數據庫的傳入日期時間字段更改爲它似乎需要的時區支持條目。數據庫以UTC格式存儲它,而我的系統在PST上。
我收到此錯誤:
DateTimeField字段收到一個天真的日期時間(2012-09-01: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,但不太瞭解如何改變基於類的視圖來使用它。謝謝....
對不起,我應該說我知道問題在於MySQL沒有用TZ數據存儲日期。 DateTimeField不,我不知道如何解決這個問題。 MySQL中的所有內容都表示這不是一種選擇,我不能使用任何其他數據庫程序。因此,我需要在將數據從數據庫中提取出來之後,將數據注意到TZ信息,然後將其注入到視圖中,以便顯示正確的細節並擺脫錯誤。或者我需要另一個選項來解決錯誤。 –
我明白了。也許這個答案可能會指向你正確的方向:http://stackoverflow.com/questions/10034823/django-converting-old-datetime-field-to-new-1-4-datetime-with-time-zone-aware -in –
感謝您提供這些信息,但我已經看到了模板組件並嘗試了它們,但它們沒有多大幫助。但是這個信息確實解釋了,我猜它一旦將它從MySQL中拉出,它就已經使DateTimeField知道了。我仍然沒有解決我的問題的答案,因爲load tz等不適用於文檔的說明。 –