我正在将现有的数据库应用程序移植到Django(好多了!),并创建了Django模型,如下所示:
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.ForeignKey(Author)
subject = models.ManyToManyField(Subject, related_name='subject')
class Author(models.Model):
name = models.CharField(max_length=200)
class Subject(models.Model):
name = models.CharField(max_length=200)
我已经从现有数据中填充了模型。问题是数据非常混乱,并且存在孤立Author
和Subject
个条目,没有相关的Book
。
我可以使用Django删除这些Author
和Subject
条目吗?这样的事情 - 但这不起作用......
orphan_authors = Author.objects.filter(book_set=None)
for orphan in orphan_authors:
orphan.delete()
orphan_subjects = Subject.objects.filter(book_set=None)
for orphan in orphan_subjects:
orphan.delete()
或者我应该使用原始SQL吗?
答案 0 :(得分:1)
根据您的模型,这样的事情可能有效:
authors = Author.objects.all()
for a in authors:
books = Book.objects.filter(author=a)
if not books:
a.delete()
我没有对此进行测试,但希望它能给你一个想法。