Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django输出html时间比数据库时间提前8小时_Django_Python 2.7 - Fatal编程技术网

Django输出html时间比数据库时间提前8小时

Django输出html时间比数据库时间提前8小时,django,python-2.7,Django,Python 2.7,我对Django非常陌生,我一直在学习《Django实用项目》(这本书教我们编写cms)一书中的框架。我的代码运行正常,但下面的get\u absolute\u url函数有时间问题。它实际上比我数据库中保存的时间提前8小时输出链接。我使用PythonShell查看数据库中节省的时间和管理界面中节省的时间,它们都是正确的。但是,当我使用下面的get_absolute\u url func在浏览器中生成链接时,它会提前8个小时生成链接,并将一天的时间推迟。我在Django设置文件中设置了正确的区域

我对Django非常陌生,我一直在学习《Django实用项目》(这本书教我们编写cms)一书中的框架。我的代码运行正常,但下面的
get\u absolute\u url
函数有时间问题。它实际上比我数据库中保存的时间提前8小时输出链接。我使用PythonShell查看数据库中节省的时间和管理界面中节省的时间,它们都是正确的。但是,当我使用下面的
get_absolute\u url func
在浏览器中生成链接时,它会提前8个小时生成链接,并将一天的时间推迟。我在Django设置文件中设置了正确的区域。我想不出怎么了

如何解决这个问题(我正在使用sqlite3作为我的数据库Django 1.4.1)

以下是我的入门类代码:

import datetime

from django.db import models
from django.contrib.auth.models import User

from tagging.fields import TagField
from markdown import markdown
from django.conf import settings
from django.utils.encoding import smart_str

class Entry(models.Model):

live = LiveEntryManager()
objects = models.Manager()
#define constant options
LIVE_STATUS = 1
DRAFT_STATUS = 2
HIDDEN_STATUS = 3
STATUS_CHOICES = (
    (LIVE_STATUS, 'Live'),
    (DRAFT_STATUS,'Draft'),
    (HIDDEN_STATUS, 'Hidden'),
    )
#adding features to admin interface
class Meta:
    ordering = ['-pub_date']
    verbose_name_plural = "Entries"    
#define model fields:
title = models.CharField(max_length=250)
excerpt = models.TextField(blank=True) #It's ok to not add anything for this field
body = models.TextField()
pub_date = models.DateTimeField(default=datetime.datetime.now()) 
slug = models.SlugField(unique_for_date='pub_date')

enable_comments = models.BooleanField(default=True)
featured = models.BooleanField(default=False)
status = models.IntegerField(choices=STATUS_CHOICES, default=LIVE_STATUS)
#HTML
excerpt_html = models.TextField(editable=False, blank=True)
body_html = models.TextField(editable=False, blank=True)
#third party:
tag = TagField()
#relationship fields:
categories = models.ManyToManyField(Category)
author = models.ForeignKey(User)
#define methods:
def save(self, force_insert=False, force_update=False):#modify the model.save() method
    self.body_html = markdown(self.body)
    if self.excerpt:
        self.excerpt_html = markdown(self.excerpt)#from excerpt field to excerpt_html
    super(Entry, self).save(force_insert, force_update)
def get_absolute_url(self):
    return "%s" % self.pub_date.strftime("year:%Y/day:%d/hour:%H/minute:%M/second:%S")
#@models.permalink
#def get_absolute_url(self):
    #return ('coltrane_entry_detail', (), {'year': self.pub_date.strftime("%Y"),
                                          'month': self.pub_date.strftime("%b").lower(),
                                          'day': self.pub_date.strftime("%d"),
                                          'slug': self.slug})
def __unicode__(self):
    return self.title
这是我的条目_archive.html:

{% extends "base_entries.html"%}

{%block title%}{{block.super}} | Latest entries{% endblock %}


{% block content %}
{% for entry in latest %} 

<h2>{{entry.title}}</h2>
<p>Published on {{ entry.pub_date|date:"F j P s, Y" }}</p>
{% if entry.excerpt_html%}
    {{entry.excerpt_html|safe}}
{% else %}
    {{entry.body_html|truncatewords_html:"50"|safe}}
{% endif%}
<p><a href="{{entry.get_absolute_url}}">Read full entry ...</a></p>

{% endfor %}
{%endblock%}

{%block whatis%}
 <p>This is a list of the latest {{latest.count}} entries published in my blog.</p>

{% endblock %}
{%extensed“base_entries.html”%}
{%block title%}{{block.super}}最新条目{%endblock%}
{%block content%}
{对于最新%%中的条目,}
{{entry.title}
发表于{entry.pub_date{124; date:“F j p s,Y”}

{%if entry.extract_html%} {{entry.extract|html | safe} {%else%} {{entry.body|html|truncatewords|html:“50”| safe}} {%endif%}

{%endfor%} {%endblock%} {%block whatis%} 这是在我的博客中发布的最新{{latest.count}}条目的列表

{%endblock%}
我不能发布截图,因为我是新用户。{{entry.pub_date{124; date:“F j P s,Y”}在我的html中给我正确的时间:2012年12月28日上午11:24 45。但是{entry.get_absolute_url}给了我年份:2012/天:28/小时:19/分钟:24/秒:45

我按照你们的建议将()添加到pub_date=models.DateTimeField(默认值为datetime.datetime.now()),但结果仍然是一样的(这本书实际上建议不要添加())。困扰我的是{entry.pub_date{124; date:“F j P s,Y”}在html上给了我正确的时间,但是{{entry.get_absolute_url}提前了8个小时。我将setting.py时区设置为time_zone='America/Los_Angeles'。感谢您的快速响应,但这让我很难受……

更改以下内容:

pub_date = models.DateTimeField(default=datetime.datetime.now)
要么

pub_date = models.DateTimeField(default=datetime.datetime.now())


看起来像是时区问题。您和您的服务器位于哪个时区?检查settings.py
pub\u date=models.datetime字段(默认值=datetime.datetime.now)
应该是
pub\u date=models.datetime字段(默认值=datetime.datetime.now())
查看
之后缺少的
()
pub_date = models.DateTimeField(auto_now_add=True)