【发布时间】:2016-12-16 10:34:57
【问题描述】:
我想删除 BUser 和 Profile 之间的关系:
由于 ForeignKey 不允许空值,我必须像这样迭代(性能很糟糕!)以删除所有关系:
for u in user.profile_set.all():
u.delete()
class Profile(models.Model):
user = models.ForeignKey('BUser')
class BUser(AbstractBaseUser, PermissionsMixin):
username = models.CharField(max_length=40, unique=True)
还有另一种删除所有关系的方法[具有更好的性能]? 我试过了:
obj.transparentprofile_set = None
obj.transparentprofile_set.clear()
obj.transparentprofile_set.empty()
但是,就像我说的那样,由于 ForeignKey 中没有 null=True,所以我不能使用它们。
【问题讨论】:
-
您在寻找
user.profile_set.all().delete()?.. -
用于 Dajngo 中的批量删除 How to make Django QuerySet bulk delete() more efficient
-
您是否希望保留个人资料而不与用户建立任何链接?
标签: django