BREAKING CHANGE: previously datetime fields where not exported in regards to default timezone fixes: #942, #813
This commit is contained in:
parent
d75c381d7b
commit
4589d4c40b
|
@ -192,6 +192,8 @@ class DateTimeWidget(Widget):
|
|||
def render(self, value, obj=None):
|
||||
if not value:
|
||||
return ""
|
||||
if settings.USE_TZ:
|
||||
value = timezone.localtime(value)
|
||||
return value.strftime(self.formats[0])
|
||||
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ class BookResource(ModelResource):
|
|||
|
||||
|
||||
class BookAdmin(ImportExportMixin, admin.ModelAdmin):
|
||||
list_display = ('name', 'author', 'added')
|
||||
list_filter = ['categories', 'author']
|
||||
resource_class = BookResource
|
||||
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
# Generated by Django 2.1.5 on 2019-04-09 06:46
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('core', '0007_auto_20180628_0411'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='EBook',
|
||||
fields=[
|
||||
],
|
||||
options={
|
||||
'proxy': True,
|
||||
'indexes': [],
|
||||
},
|
||||
bases=('core.book',),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='book',
|
||||
name='added',
|
||||
field=models.DateTimeField(blank=True, null=True),
|
||||
),
|
||||
]
|
|
@ -40,6 +40,7 @@ class Book(models.Model):
|
|||
published = models.DateField('Published', blank=True, null=True)
|
||||
published_time = models.TimeField('Time published', blank=True, null=True)
|
||||
price = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True)
|
||||
added = models.DateTimeField(blank=True, null=True)
|
||||
|
||||
categories = models.ManyToManyField(Category, blank=True)
|
||||
|
||||
|
|
|
@ -291,6 +291,7 @@ class ModelResourceTest(TestCase):
|
|||
headers = self.resource.get_export_headers()
|
||||
self.assertEqual(headers, ['published_date', 'id', 'name', 'author',
|
||||
'author_email', 'published_time', 'price',
|
||||
'added',
|
||||
'categories', ])
|
||||
|
||||
def test_export(self):
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
from datetime import date, datetime, time, timedelta
|
||||
from decimal import Decimal
|
||||
|
||||
import pytz
|
||||
from core.models import Author, Category
|
||||
|
||||
from django.test import TestCase
|
||||
|
@ -62,14 +63,11 @@ class DateTimeWidgetTest(TestCase):
|
|||
self.assertEqual(self.widget.clean("13.08.2012 18:00:00"),
|
||||
self.datetime)
|
||||
|
||||
@override_settings(USE_TZ=True)
|
||||
@override_settings(USE_TZ=True, TIME_ZONE='Europe/Ljubljana')
|
||||
def test_use_tz(self):
|
||||
self.assertEqual(self.widget.render(self.datetime),
|
||||
"13.08.2012 18:00:00")
|
||||
aware_dt = timezone.make_aware(self.datetime,
|
||||
timezone.get_default_timezone())
|
||||
self.assertEqual(self.widget.clean("13.08.2012 18:00:00"),
|
||||
aware_dt)
|
||||
utc_dt = timezone.make_aware(self.datetime, pytz.UTC)
|
||||
self.assertEqual(self.widget.render(utc_dt), "13.08.2012 20:00:00")
|
||||
self.assertEqual(self.widget.clean("13.08.2012 20:00:00"), utc_dt)
|
||||
|
||||
|
||||
class DateWidgetBefore1900Test(TestCase):
|
||||
|
@ -289,4 +287,4 @@ class JSONWidgetTest(TestCase):
|
|||
def test_render_none(self):
|
||||
self.assertEqual(self.widget.render(None), None)
|
||||
self.assertEqual(self.widget.render(dict()), None)
|
||||
self.assertEqual(self.widget.render({"value": None}), '{"value": null}')
|
||||
self.assertEqual(self.widget.render({"value": None}), '{"value": null}')
|
||||
|
|
|
@ -100,3 +100,7 @@ LOGGING = {
|
|||
'root': {
|
||||
'handlers': ['console'],
|
||||
}}
|
||||
|
||||
|
||||
# USE_TZ = True
|
||||
# TIME_ZONE = 'Europe/Ljubljana'
|
||||
|
|
Loading…
Reference in New Issue