过滤外键null在Django 1.7中不起作用

时间:2014-12-17 07:00:11

标签: python django django-models

以下是模型设置和我正在尝试的查询的简要示例。这并没有给我任何Django 1.6中的错误,但在1.7中它给了我一个例外。 "隐含"看来,接口查询集上没有外键。我尝试了select_related(' gwportprefix')和prefetch_related(' gwportprefix')但没有运气。

class Interface(models.Model):
    # Several fields here that are not related.
    pass

class GwPortPrefix(models.Model):
    interface = models.ForeignKey('Interface', db_column='interfaceid')

for gwport in Interface.objects.filter(gwportprefix__isnull=False):
    gwport_matches.add(gwport)

这会产生以下FieldError:

无法解析关键字' gwportprefix'进入田野。选择是(一切都直接在接口上。没有隐含的外键)

1 个答案:

答案 0 :(得分:1)

在django 1.7中,

在QuerySet / Manager实现中发生了很多变化。你试过吗?

Interface.objects.filter(gwportprefix_set__isnull=False)