Отображение двух моделей на одной странице html
недавно начал познавать django, но столкнулся с проблемой. Создал 2 модуля. Один модуль отображается на странице, а вот второй нет. Максимально искал в интернете, но к сожалению не смог найти.
Если более конкретно, то Акции отображаются, а вот Игры нет. В html после создания "таблицы" в админке изменений не появляется. Как будто блок: {% for a in games %} не работает.
Есть подозрения, что у меня проблема с views.py, но понять не могу, что сделать. Была идея попробовать class IndexPageView(ListView):
index.html
{% block content %}
<div class="stock_block">
{% for sale in sales %}
<a href="#" class="st_1" hx-post="{{ request.path }}?id={{ sale.id }}" hx-target=".modal-body">
<div class="st_text1">{{ sale.title }}</div>
<div class="st_text2" >Нажми, чтобы узнать подробнее</div>
<div class="st_blur"></div>
<img src="{{ sale.cover }}">
</a>
{% endfor %}
</div>
{% endblock %}
{% block game %}
<div class="games_ramka">
{% for a in games %}
<div class="game_1">
<div class="startblur">
<a href="#"><div class="startgame">
<div class="iconstart"></div>
</div>
</a>
</div>
<div class="blur_game"></div>
<div class="name_game">{{ a.gtitle }}</div>
<img src="{{ a.gcover }}">
</div>
{% endfor %}
</div>
</div>
{% endblock %}
views.py
from django.shortcuts import render
from django.http import HttpResponse
from .models import Akcii
from .models import GameStin
# Create your views here.
def index(request):
if request.htmx:
id = request.GET.get('id')
context = {'sale': Akcii.objects.get(id=id)}
return render(request, 'main/partials/htmx_show_popup.html', context=context)
sales = Akcii.objects.all()
return render(request, 'main/index.html', {'sales': sales})
def gami(request):
games = GameStin.objects.all()
return render(request, 'main/index.html', {'games': games})
url.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index),
path('', views.gami)
]
Роут path('', views.gami) у вас не работает т.к. путь такой уже есть. Параметр context у функции render - это те самые переменные, которые будут отображаться у вас на странице, исправьте на
def index(request):
games = GameStin.objects.all()
if request.htmx:
id = request.GET.get('id')
context = {'sale': Akcii.objects.get(id=id), 'games': games}
return render(request, 'main/partials/htmx_show_popup.html', context=context)
sales = Akcii.objects.all()
return render(request, 'main/index.html', {'sales': sales, 'games': games})