2010-05-03 9 views
0

У меня есть следующие моделиУдалить ManyToManyField в Django

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) 

Один DatabaseUser может иметь много баз данных под его контролем.

Проблема, которую я имею, если я иду, чтобы удалить базу данных, которая хочет удалить DatabaseUser также. Есть ли способ остановить это из-за чего легко?

ответ

1

Это не понятно, почему у вас есть несколько FKs для пользователя, но в стороне вы должны отцепить отношения между базой данных и любые 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() 

[редактировать была опечатка FIX]

Смежные вопросы