在Django ORM中执行反连接
我有两种型号:在Django ORM中执行反连接,django,django-models,django-orm,Django,Django Models,Django Orm,我有两种型号: class Note(model): <attribs> class Permalink(model): note = foreign key to Note 想知道如何在ORM中实现这一点 编辑:我不想让所有的永久链接进入我的应用程序。而是希望它作为数据库内部的查询运行。您应该能够使用此查询: Note.objects.filter(permalink_set__isnull=True) 您可以使用: Note.objects.exclude
class Note(model):
<attribs>
class Permalink(model):
note = foreign key to Note
想知道如何在ORM中实现这一点
编辑:我不想让所有的永久链接进入我的应用程序。而是希望它作为数据库内部的查询运行。您应该能够使用此查询:
Note.objects.filter(permalink_set__isnull=True)
您可以使用:
Note.objects.exclude(id__in=Permalink.objects.all().values_list('id', flat=True))
这是一个奇怪的慢方法,我刚刚发布了另一个方法,我刚刚评论了它的小修正,应该是。values_list('note',flat=True)。或者。值('note')也可以。你能告诉我permalink_集是什么吗?我在shell中运行了这个,但它不起作用。@AnilShanbhag:它是Permalink外键的相关名称。因此,如果您为外键设置了相关名称,请使用它。@AnilShanbhag if
related\u name
settednote=models.ForeignKey('note',related\u name='permalinks')
因此它应该是note.objects.filter(permalinks\u isnull=True)
Note.objects.exclude(id__in=Permalink.objects.all().values_list('id', flat=True))