Функция смешивает значения разной модели (в пределах одинаковых именованных полей)
Вот моя функция поиска
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"
, так почему же вы пытаетесь зациклиться на чем-то, что не существует в вашем контексте, в вашем шаблоне? Потому что вы совершенно не понимаете, что вы делаете. Так что это немного грубо, но это то, что есть.