Функция смешивает значения разной модели (в пределах одинаковых именованных полей)

Вот моя функция поиска

def search(request):
    query = request.GET['query']
    allPoststit = List.objects.filter(title__icontains=query)
    allPostscont = List.objects.filter(content__icontains=query)
    allPostsl = allPoststit.union(allPostscont)
    allPoststitm = MusicList.objects.filter(title__icontains=query)
    allPostscontm = MusicList.objects.filter(content__icontains=query)
    allPostsm = allPoststitm.union(allPostscontm)
    allPoststitb = BookList.objects.filter(title__icontains=query)
    allPostscontb = BookList.objects.filter(content__icontains=query)
    allPostsb = allPoststitb.union(allPostscontb)
    allPosts2 = allPostsl.union(allPostsm)
    allPosts = allPosts2.union(allPostsb)
    params = {'allPosts' : allPosts, 'query':query}
    return render(request, 'app/search.html', params)

когда из шаблона я вызываю

{% for tag in i.genre.all %}
<div class="Genre">
<small>{{ tag }}</small>
</div>
{% empty %}
            No tags!
{% endfor %}

Перемешивает значения в разных моделях или возвращает пустые значения. Есть идеи, почему это происходит?

Во-первых, не allBlabla, а all_blablabla. И вы даже не посылаете какой-то объект "genre" или "i" в ваш контекст, вы посылаете "allPosts" и "query", так почему же вы пытаетесь зациклиться на чем-то, что не существует в вашем контексте, в вашем шаблоне? Потому что вы совершенно не понимаете, что вы делаете. Так что это немного грубо, но это то, что есть.

Вернуться на верх