Django |查询过滤器返回的结果超出预期

时间:2020-07-16 23:25:37

标签: python django database filter

我不确定在这里所做的事情是否正确,但是当我尝试过滤数据库时,我得到的结果比应有的多。我正在尝试获取具有相同季节ID的剧集列表。

Screen shot of Database

我过滤了1个带有franchies_item_name_id = 67的条目(通常我是从别的东西中得到这个条目,但是尝试解决我刚刚输入的数字)。

3个franchies_name_id = 2的条目,在这种情况下我不在乎。

episodes_query = Episides.objects.filter(franchies_item_name_id=67)
            print(f'tv_item.id {tv_item.id}')
            print(f'episodes_query {episodes_query}')

我得到的是所有具有franchies_name_id = 2的物品

tv_item.id 67
episodes_query <QuerySet [<Episides: Episides object (3)>]>

我确定我在这里做了一些愚蠢的事情,但还不是最模糊的事情。

如果franchies_item_name_id = 5可以正常工作

1 个答案:

答案 0 :(得分:1)

3不是元素数,而只是一个具有主键3的元素。实际上,模型的标准repr(…)ModelName object (pk)。因此QuerySet包含一个元素,而该元素的主键为3。

例如,如果您打印长度,那么元素数:

print(len(episodes_query))  # 1

或者如果您对其进行迭代:

for item in episodes_query:
    print('item')

它将打印item一次。

相关问题