views:

20

answers:

1

I have the following models

class Database(models.Model):
    user = models.ForeignKey(User)
    name = models.CharField(max_length=100)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)


class DatabaseUser(models.Model):
    user = models.ForeignKey(User)
    name = models.CharField(max_length=100)
    password = models.CharField(max_length=100)
    database = models.ManyToManyField(Database)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)

One DatabaseUser can have many Databases under it's control.

The issue I have if I go to delete a Database it wants to Delete the DatabaseUser also.. Is there a way to stop this from happening easily?

+1  A: 

It's not clear why you have the multiple fks to User, but that aside you need to unhook the relationship between the Database and any DatabaseUsers

for db_user in yourdatabase.databaseuser_set.all(): #for all users who are linked to the DB you're about to kill
  db_user.database.remove(yourdatabase) #unhook the m2m

yourdatabase.delete()

[edit was typo fix]

stevejalim