Время выхода html в Django на 8 часов больше времени базы данных

Я очень новичок в Django , и я изучал фреймворк из книги «Практические проекты django» (книга учит писать cms). Мой код работает нормально, но у меня есть проблема времени с функцией get_absolute_url ниже. Фактически это выводит ссылку на 8 часов раньше времени, сохраненного в моей базе данных. Я использовал оболочку python для просмотра сохраненного времени в базе данных и времени, сохраненного в интерфейсе администратора, все они правильные. Но когда я использую get_absolute_url func ниже, чтобы создать ссылку в браузере, она будет на 8 часов вперед и выбрасывает выходной день. Я установил правильную зону в файле настроек Django. Я не могу понять, что случилось.

Как я могу это исправить (я использую sqlite3 для своей базы данных, Django 1.4.1)?

Вот мой код для класса Entry:

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

Это мой entry_archive.html:

{% extends "base_entries.html"%}

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


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

{{entry.title}}

Published on {{ entry.pub_date|date:"F j P s, Y" }}

{% if entry.excerpt_html%} {{entry.excerpt_html|safe}} {% else %} {{entry.body_html|truncatewords_html:"50"|safe}} {% endif%}

Read full entry ...

{% endfor %} {%endblock%} {%block whatis%}

This is a list of the latest {{latest.count}} entries published in my blog.

{% endblock %}

Я не могу опубликовать снимок экрана, потому что я новый пользователь. {{entry.pub_date | дата: "F j P s, Y"}} в моем html дайте мне правильное время: 28 декабря 11:24 утра 45, 2012. Но {{entry.get_absolute_url}} дает мне год: 2012/день: 28/час: 19/минута: 24 секунд /: 45

Я добавляю() в pub_date = models.DateTimeField (по умолчанию = datetime.datetime.now ()), как вы, ребята, предложили, но результат все тот же (книга действительно предлагает не добавлять ()). Дело в том, что {{entry.pub_date | date: "F j P s, Y"}} дает мне правильное время на моем html, но {{entry.get_absolute_url}} на 8 часов вперед. Я установил свой часовой пояс setting.py в TIME_ZONE = 'America/Los_Angeles'. Спасибо за весь быстрый ответ, но это убивает меня ...

1
nl ja de
pub_date = models.DateTimeField (по умолчанию = datetime.datetime.now) должен быть pub_date = models.DateTimeField (по умолчанию = datetime.datetime.now ()) видеть отсутствующий < code>() после .now
добавлено автор Aamir Adnan, источник
выглядит как проблема часового пояса. Какие временные зоны вы и ваши серверы?
добавлено автор Thilo, источник
проверьте значение TIME_ZONE в settings.py
добавлено автор sneawo, источник

1 ответы

измените следующее:

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

либо

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

или

pub_date = models.DateTimeField(auto_now_add=True)
0
добавлено
Python
Python
7 654 участник(ов)

Уютный чат для профессионалов, занимающихся поиском питоньих мудростей. Как не получить бан: https://t.me/ru_python/577926

Python beginners
Python beginners
4 449 участник(ов)

Вопросы про Python для чайников. Cпам и троллинг неприемлем. Не злоупотребляйте стикерами. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Статистика тут: https://grstats.me/chat/x4qym2k5uvfkr3al6at7

Django
Django
1 931 участник(ов)

Полезная информация и правила: https://github.com/django-ru/faq Вакансии и резюме: @django_jobs Пофлудить идём сюда: @django_flood Статистика чата: combot.org/chat/-1001063854692

pro.python
pro.python
1 090 участник(ов)

Сообщество разработчиков под Python Создатель: @rodgelius

Rude Python
Rude Python
971 участник(ов)

Python без „девочек”, здесь матерятся и унижают Django. Not gay friendly. Правила: t.me/rudepython/114107 @rudepython | t.me/rudepython

django_jobs
django_jobs
916 участник(ов)

Поиск и предложения работы (Django) Правила: https://t.me/django_jobs/4 Вакансии с тегом #job улетают в канал @django_jobs_board Вопросы к @amureki Основной чат @pydjango

Django
Django
733 участник(ов)

Веб-фреймворк для перфекционистов с дедлайнами. Наша группа на vk: https://vk.com/django_framework В Discord: https://discord.me/django_framework по всем вопросам @MechanisM

rupython
rupython
509 участник(ов)

Группа создана с целью оперативного получения ответов на возникающие вопросы по разработке на яп python, смежные темы, а также человеческого общения. Приветствую!

Python-programming
Python-programming
266 участник(ов)

Чат группы вконтакте https://vk.com/python_community

django flood
django flood
71 участник(ов)

Флудилка джангистов Пока без правил