From 15ac1d5026634340c4f737e5ac2ce0380ca35f89 Mon Sep 17 00:00:00 2001 From: Jan Smitka Date: Fri, 6 Apr 2018 11:12:30 +0200 Subject: [PATCH 1/3] Updated install_requires to include Django 2.0. --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 9ca8de5..807acf1 100755 --- a/setup.py +++ b/setup.py @@ -27,7 +27,7 @@ long_description=open('README.rst').read(), url='https://github.com/ocadotechnology/django-closuretree/', install_requires=[ - 'django >= 1.4, < 1.12', + 'django >= 1.4, < 2.1', 'django-autoconfig', ], tests_require=['django-setuptest >= 0.2'], From d4d8e6ae8a9eb0f27aeab99b3c72986353d6c7e9 Mon Sep 17 00:00:00 2001 From: Jan Smitka Date: Fri, 6 Apr 2018 11:14:25 +0200 Subject: [PATCH 2/3] on_delete argument of models.ForeignKey is required since Django 2.0. Updated tests and closure model with on_delete=models.CASCADE. --- closuretree/models.py | 2 ++ closuretree/tests.py | 16 +++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/closuretree/models.py b/closuretree/models.py index 46bcc5e..2e1ccef 100644 --- a/closuretree/models.py +++ b/closuretree/models.py @@ -49,10 +49,12 @@ def create_closure_model(cls): model = type('%sClosure' % cls.__name__, (models.Model,), { 'parent': models.ForeignKey( cls.__name__, + on_delete=models.CASCADE, related_name=cls.closure_parentref() ), 'child': models.ForeignKey( cls.__name__, + on_delete=models.CASCADE, related_name=cls.closure_childref() ), 'depth': models.IntegerField(), diff --git a/closuretree/tests.py b/closuretree/tests.py index fd2b1a4..9b807da 100644 --- a/closuretree/tests.py +++ b/closuretree/tests.py @@ -29,16 +29,21 @@ from closuretree.models import ClosureModel import uuid +class Blah(models.Model): + """A test model for foreign keys""" + thing = models.CharField(max_length=32) + class TC(ClosureModel): """A test model.""" parent2 = models.ForeignKey( "self", + on_delete=models.CASCADE, related_name="children", null=True, blank=True ) name = models.CharField(max_length=32) - blah = models.ForeignKey("Blah", related_name="tcs", null=True, blank=True) + blah = models.ForeignKey("Blah", on_delete=models.CASCADE, related_name="tcs", null=True, blank=True) class ClosureMeta(object): """Closure options.""" @@ -47,10 +52,6 @@ class ClosureMeta(object): def __unicode__(self): return "%s: %s" % (self.pk, self.name) -class Blah(models.Model): - """A test model for foreign keys""" - thing = models.CharField(max_length=32) - class TCSUB(TC): """Testing closure subclasses.""" extrafield = models.IntegerField() @@ -125,6 +126,7 @@ class UUIDTC(ClosureModel): primary_key = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) parent2 = models.ForeignKey( "self", + on_delete=models.CASCADE, related_name="children", null=True, blank=True, @@ -340,6 +342,7 @@ class SentinelModel(ClosureModel): """A model using a sentinel attribute.""" location = models.ForeignKey( "IntermediateModel", + on_delete=models.CASCADE, null=True, blank=True ) @@ -361,6 +364,7 @@ class IntermediateModel(models.Model): """ real_parent = models.ForeignKey( 'SentinelModel', + on_delete=models.CASCADE, null=True, blank=True, ) @@ -410,6 +414,7 @@ class TCNoMeta(ClosureModel): """A test model without a ClosureMeta.""" parent = models.ForeignKey( "self", + on_delete=models.CASCADE, related_name="children", null=True, blank=True @@ -437,6 +442,7 @@ class Meta: parent = models.ForeignKey( "self", + on_delete=models.CASCADE, related_name="children", null=True, blank=True From eab9a8e0f8b8481cb0a359bd0d44878339e4c19a Mon Sep 17 00:00:00 2001 From: Jan Smitka Date: Fri, 6 Apr 2018 11:21:24 +0200 Subject: [PATCH 3/3] Added Django 2.0 on Python 3.6 and PyPy3.5v5.10.1 to .travis.yml. --- .travis.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index b3825db..845e898 100644 --- a/.travis.yml +++ b/.travis.yml @@ -29,10 +29,14 @@ matrix: env: DJANGO=">=1.10,<1.11" - python: 3.5 env: DJANGO=">=1.11,<1.12" + - python: 3.6 + env: DJANGO=">=2.0,<2.1" - python: pypy3 env: DJANGO=">=1.8,<1.9" - python: pypy env: DJANGO=">=1.9,<1.10" + - python: pypy3.5-5.10.1 + env: DJANGO=">=2.0,<2.1" deploy: provider: pypi user: ocadotechnology