当一个字符串列表(代表标签)被发送到一个函数时,它会检索数据库中的标签,并创建在数据库中找不到的标签。
然后我需要将这两个组合成一个查询集并返回,但是当我尝试使用 + 连接两个查询集时,它会引发错误。
如何连接两个查询集?
# Separate one in DB and not in DB
tags_found_in_db = Tag.objects.filter(name__in = tag_strings)
name_of_tags_found_in_db = [tag.name for tag in tags_found_in_db]
tags_not_in_db = list(set(tag_strings) - set(name_of_tags_found_in_db))
# Bulk Create
tags_to_be_created = []
for new_tag_name in tags_not_in_db:
tags_to_be_created.append(
Tag(name = new_tag_name)
)
new_tags = Tag.objects.bulk_create( tags_to_be_created )
# > TypeError: can only concatenate list (not "QuerySet") to list
return new_tags + tags_found_in_db