From 0e464ed3e6b77bbbd6069c27924c624c3fe7c0d0 Mon Sep 17 00:00:00 2001 From: Dan Collins Date: Mon, 5 Feb 2018 16:53:00 -0500 Subject: [PATCH] Django 2.0: Add on_delete to ForeignKeys --- async/migrations/0001_initial.py | 6 +++--- async/models.py | 16 +++++++++++----- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/async/migrations/0001_initial.py b/async/migrations/0001_initial.py index 915b9db..20b1b12 100644 --- a/async/migrations/0001_initial.py +++ b/async/migrations/0001_initial.py @@ -50,7 +50,7 @@ class Migration(migrations.Migration): ('started', models.DateTimeField(null=True, blank=True)), ('executed', models.DateTimeField(null=True, blank=True)), ('cancelled', models.DateTimeField(null=True, blank=True)), - ('group', models.ForeignKey(related_name='jobs', blank=True, to='async.Group', null=True)), + ('group', models.ForeignKey(related_name='jobs', blank=True, to='async.Group', null=True, on_delete=models.SET_NULL)), ], options={ }, @@ -59,13 +59,13 @@ class Migration(migrations.Migration): migrations.AddField( model_name='group', name='final', - field=models.ForeignKey(related_name='ends', blank=True, to='async.Job', null=True), + field=models.ForeignKey(related_name='ends', blank=True, to='async.Job', null=True, on_delete=models.SET_NULL), preserve_default=True, ), migrations.AddField( model_name='error', name='job', - field=models.ForeignKey(related_name='errors', to='async.Job'), + field=models.ForeignKey(related_name='errors', to='async.Job', on_delete=models.CASCADE), preserve_default=True, ), ] diff --git a/async/models.py b/async/models.py index 98c2aa4..92442b7 100644 --- a/async/models.py +++ b/async/models.py @@ -35,8 +35,10 @@ class Group(models.Model): reference = models.CharField(max_length=100) description = models.TextField(blank=True, null=True) created = models.DateTimeField(auto_now_add=True) - final = models.ForeignKey('Job', blank=True, null=True, - related_name='ends') + final = models.ForeignKey('Job', + on_delete=models.SET_NULL, + blank=True, null=True, + related_name='ends') def __unicode__(self): return u'%s' % self.reference @@ -156,8 +158,10 @@ class Job(models.Model): executed = models.DateTimeField(null=True, blank=True) cancelled = models.DateTimeField(null=True, blank=True) - group = models.ForeignKey(Group, related_name='jobs', - null=True, blank=True) + group = models.ForeignKey(Group, + on_delete=models.SET_NULL, + related_name='jobs', + null=True, blank=True) def __unicode__(self): # __unicode__: Instance of 'bool' has no 'items' member @@ -246,7 +250,9 @@ class Error(models.Model): """ Recorded when an error happens during execution of a job. """ - job = models.ForeignKey(Job, related_name='errors') + job = models.ForeignKey(Job, + on_delete=models.CASCADE, + related_name='errors') executed = models.DateTimeField(auto_now_add=True) exception = models.TextField() traceback = models.TextField()