【发布时间】:2017-06-26 17:18:52
【问题描述】:
我有以下型号:
class User(models.Model):
user_question = models.ForeignKey(UserQuestion)
class Question(models.Model):
text = models.CharField(max_length=255)
class UserQuestion(models.Model):
answer = models.CharField(max_length=255)
question = models.ForeignKey(Question)
user = models.ForeignKey(User, related_name='questions')
当我在下面运行查询时,用户模型也被删除了
user.questions.all().delete()
有什么方法可以在不删除用户的情况下删除问题?
我尝试迭代问题,但没有奏效
questions = user.questions.all()
for an in questions:
answer.delete()
我认为查询集是惰性的,所以也许我需要在删除之前对其进行评估,所以我打印了它,但这不起作用。
print questions
questions.delete()
我知道将 ForeignKey 设为 null 将为我提供 clear 和 remove 之类的方法,但我不想这样做,因为我不想要任何孤立的用户问题。
我更新了 ForeignKey 如下
class UserQuestion(models.Model):
answer = models.CharField(max_length=255)
user = models.ForeignKey(User, related_name='questions', null=True, on_delete=models.SET_NULL)
我运行了makemigrations 和migrate,但是当我运行下面的查询时,问题模型仍然被删除。
user.questions.all().delete()
【问题讨论】:
标签: django python-2.7 django-1.7