Я пытаюсь проверить создание корзины, основанный на django cartДжанго: RunTimeWarning: DateTimeField получил наивные DateTime в то время как поддержка часового пояса активна
Но я эту ошибку, когда я пытаюсь создать телегу:
RunTimeWarning: DateTimeField получил наивные DateTime в то время как поддержка часового пояса активна
Я сделал некоторые исследования, но я не мог решить мою проблему для datetime.datetime.now()
test_views.py в моем каталоге тестов:
from django.test import TestCase, Client, RequestFactory
import unittest
from django.contrib.auth.models import User, AnonymousUser
from front.models import Entreprise, Cart, CartItems
from decimal import Decimal
from front.cart import models
import datetime
import pytz
from pytz import all_timezones
from django.utils import timezone
def _create_cart_in_database(self, creationDate=datetime.datetime.now(), checkedOutDate=True):
"""
Helper function so I don't repeat myself
"""
cart = models.Cart()
cart.creationDate = creationDate
cart.checkedOutDate = False
cart.save()
return cart
def test_cart_creation(self):
creationDate = datetime.datetime.now()
cart = self._create_cart_in_database(creationDate)
id = cart.id
cart_from_database = models.Cart.objects.get(pk=id)
self.assertEquals(cart, cart_from_database)
models.py:
class Cart(models.Model):
creationDate = models.DateTimeField()
У меня также есть USE_TZ = True
в моих настройках.
timezone.now()
Я попытался, но до сих пор не работает:
def _create_cart_in_database(self, creationDate=timezone.now(), checkedOutDate=True):
def test_cart_creation(self):
creationDate = timezone.now()
RunTimeWarning: DateTimeField Cart.creationDate получил наивные DateTime (2016-06-03 08: 46: 34.829000) в то время как поддержка часовой пояс активный.
EDIT:
У меня есть эта ошибка сейчас, и это кажется формат ошибка DateTime?
updated = self._save_table(raw, cls, force_insert, force_update, using, upda
te_fields)
File "C:\Python27\lib\site-packages\django-1.9.5-py2.7.egg\django\db\models\ba
se.py", line 820, in _save_table
result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "C:\Python27\lib\site-packages\django-1.9.5-py2.7.egg\django\db\models\ba
se.py", line 859, in _do_insert
using=using, raw=raw)
File "C:\Python27\lib\site-packages\django-1.9.5-py2.7.egg\django\db\models\ma
nager.py", line 122, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "C:\Python27\lib\site-packages\django-1.9.5-py2.7.egg\django\db\models\qu
ery.py", line 1039, in _insert
return query.get_compiler(using=using).execute_sql(return_id)
File "C:\Python27\lib\site-packages\django-1.9.5-py2.7.egg\django\db\models\sq
l\compiler.py", line 1059, in execute_sql
for sql, params in self.as_sql():
File "C:\Python27\lib\site-packages\django-1.9.5-py2.7.egg\django\db\models\sq
l\compiler.py", line 1019, in as_sql
for obj in self.query.objs
File "C:\Python27\lib\site-packages\django-1.9.5-py2.7.egg\django\db\models\sq
l\compiler.py", line 958, in prepare_value
value = field.get_db_prep_save(value, connection=self.connection)
File "C:\Python27\lib\site-packages\django-1.9.5-py2.7.egg\django\db\models\fi
elds\__init__.py", line 728, in get_db_prep_save
prepared=False)
File "C:\Python27\lib\site-packages\django-1.9.5-py2.7.egg\django\db\models\fi
elds\__init__.py", line 1461, in get_db_prep_value
value = self.get_prep_value(value)
File "C:\Python27\lib\site-packages\django-1.9.5-py2.7.egg\django\db\models\fi
elds\__init__.py", line 1440, in get_prep_value
value = super(DateTimeField, self).get_prep_value(value)
File "C:\Python27\lib\site-packages\django-1.9.5-py2.7.egg\django\db\models\fi
elds\__init__.py", line 1296, in get_prep_value
return self.to_python(value)
File "C:\Python27\lib\site-packages\django-1.9.5-py2.7.egg\django\db\models\fi
elds\__init__.py", line 1399, in to_python
parsed = parse_datetime(value)
File "C:\Python27\lib\site-packages\django-1.9.5-py2.7.egg\django\utils\datepa
rse.py", line 93, in parse_datetime
match = datetime_re.match(value)
TypeError: expected string or buffer
Вы должны попытаться включить только ваш * соответствующий * код в вашу проблему, его неясно, где находится настоящая проблема. Кроме того, посмотрите на любой из связанных вопросов справа. – Sayse
@Sayse Я уменьшил код :) –
Помимо ответа Selcuk, вы можете избежать установки методов по умолчанию на метод 'now()'. Я уверен, что он не будет выполняться каждый раз, когда вы вызываете функцию ... только когда сначала инициализируется – Sayse