From 88c443688627e926ed22f321ef992b64e1c1af64 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Stefan=20K=C3=B6gl?= Date: Mon, 28 Jul 2014 17:40:05 +0200 Subject: [PATCH] [Models] explicitly set on-delete behaviour on FKs --- mygpo/publisher/models.py | 5 +++-- mygpo/users/migrations/0007_syncgroup_protect.py | 20 ++++++++++++++++++++ mygpo/users/models.py | 9 ++++++--- mygpo/users/tests.py | 1 + 4 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 mygpo/users/migrations/0007_syncgroup_protect.py diff --git a/mygpo/publisher/models.py b/mygpo/publisher/models.py index 75a19639..2f131a3a 100644 --- a/mygpo/publisher/models.py +++ b/mygpo/publisher/models.py @@ -34,8 +34,9 @@ class PublishedPodcastManager(models.Manager): class PublishedPodcast(models.Model): - publisher = models.ForeignKey(settings.AUTH_USER_MODEL) - podcast = models.ForeignKey(Podcast) + publisher = models.ForeignKey(settings.AUTH_USER_MODEL, + on_delete=models.CASCADE) + podcast = models.ForeignKey(Podcast, on_delete=models.CASCADE) class Meta: unique_together = ( diff --git a/mygpo/users/migrations/0007_syncgroup_protect.py b/mygpo/users/migrations/0007_syncgroup_protect.py new file mode 100644 index 00000000..4c0c479e --- /dev/null +++ b/mygpo/users/migrations/0007_syncgroup_protect.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0006_auto_20140726_0928'), + ] + + operations = [ + migrations.AlterField( + model_name='client', + name='sync_group', + field=models.ForeignKey(to='users.SyncGroup', on_delete=django.db.models.deletion.PROTECT, null=True), + ), + ] diff --git a/mygpo/users/models.py b/mygpo/users/models.py index a5390993..46a9abcd 100644 --- a/mygpo/users/models.py +++ b/mygpo/users/models.py @@ -509,7 +509,8 @@ class PodcastUserState(Document, SettingsMixin): class SyncGroup(models.Model): """ A group of Clients """ - user = models.ForeignKey(settings.AUTH_USER_MODEL) + user = models.ForeignKey(settings.AUTH_USER_MODEL, + on_delete=models.CASCADE) def sync(self): """ Sync the group, ie bring all members up-to-date """ @@ -592,7 +593,8 @@ class Client(UUIDModel): uid = models.CharField(max_length=64, validators=[UIDValidator()]) # the user to which the Client belongs - user = models.ForeignKey(settings.AUTH_USER_MODEL) + user = models.ForeignKey(settings.AUTH_USER_MODEL, + on_delete=models.CASCADE) # User-assigned name name = models.CharField(max_length=100, default='New Device') @@ -607,7 +609,8 @@ class Client(UUIDModel): # user-agent string from which the Client was last accessed (for writing) user_agent = models.CharField(max_length=300, null=True, blank=True) - sync_group = models.ForeignKey(SyncGroup, null=True) + sync_group = models.ForeignKey(SyncGroup, null=True, + on_delete=models.PROTECT) class Meta: unique_together = ( diff --git a/mygpo/users/tests.py b/mygpo/users/tests.py index 6a75f241..0c97f8d3 100644 --- a/mygpo/users/tests.py +++ b/mygpo/users/tests.py @@ -72,6 +72,7 @@ class DeviceSyncTests(unittest.TestCase): self.assertEquals(target, dev2) def tearDown(self): + Client.objects.filter(user=self.user).delete() self.user.delete() -- 2.11.4.GIT