Skip to content

Commit 941063c

Browse files
bertonhapennersr
authored andcommitted
chore: Django 2.0 compatibility
1 parent 8123a80 commit 941063c

File tree

5 files changed

+19
-15
lines changed

5 files changed

+19
-15
lines changed

.travis.yml

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
language: python
22
python:
33
- "2.7"
4-
- "3.4"
4+
- "3.6"
55
env:
6-
- TOX_ENV=py27-django19
7-
- TOX_ENV=py34-django19
8-
- TOX_ENV=py27-django110
9-
- TOX_ENV=py34-django110
6+
- TOX_ENV=py27-django111
7+
- TOX_ENV=py36-django111
8+
- TOX_ENV=py36-django20
109
install:
1110
- pip install tox
1211
- pip install "coverage>=3.7.1" coveralls

setup.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def read_files(*filenames):
5151
packages=find_packages(),
5252
include_package_data=True,
5353
install_requires=[
54-
'django>=1.9',
54+
'django>=1.11',
5555
'pytz'
5656
],
5757
cmdclass={'test': DjangoTests},
@@ -67,6 +67,7 @@ def read_files(*filenames):
6767
'Programming Language :: Python :: 2.7',
6868
'Programming Language :: Python :: 3.3',
6969
'Programming Language :: Python :: 3.4',
70+
'Programming Language :: Python :: 3.6',
7071
'Topic :: Software Development :: Libraries :: Application Frameworks',
7172
'Topic :: Software Development :: Libraries :: Python Modules',
7273
],

tox.ini

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
[tox]
22
distribute = False
33
envlist =
4-
{py27,py34}-django19
5-
{py27,py34}-django110
4+
{py27,py36}-django111
5+
py36-django20
66

77

88
[testenv]
99
setenv = DJANGO_SETTINGS_MODULE=trackstats.tests.settings
1010
usedevelop = True
1111
deps =
12-
django19: Django==1.9.9
13-
django110: Django==1.10
12+
django111: Django==1.11.8
13+
django20: Django==2.0.1
1414
pytz
1515
coverage
1616
commands =

trackstats/tests/models.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33

44

55
class Comment(models.Model):
6-
user = models.ForeignKey('auth.User')
6+
user = models.ForeignKey('auth.User', on_delete=models.CASCADE)
77
timestamp = models.DateTimeField(default=timezone.now)

trackstats/trackers.py

+8-4
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,16 @@ def track(self, qs):
8484
is_datetime = isinstance(qs.model._meta.get_field(
8585
self.date_field), models.DateTimeField)
8686
if is_datetime:
87-
date_sql, tz_params = connection.ops.datetime_cast_date_sql(
87+
date_sql = connection.ops.datetime_cast_date_sql(
8888
self.date_field,
8989
tzname)
90-
vals = qs.extra(
91-
select={"ts_date": date_sql},
92-
select_params=tz_params)
90+
# before django 2.0 it returns a tuple
91+
if isinstance(date_sql, tuple):
92+
vals = qs.extra(
93+
select={"ts_date": date_sql[0]},
94+
select_params=date_sql[1])
95+
else:
96+
vals = qs.extra(select={"ts_date": date_sql})
9397
start_dt = datetime.combine(
9498
start_date, time()) - timedelta(days=1)
9599
if tzname:

0 commit comments

Comments
 (0)