Как получить данные из базы данных на модальную всплывающую странице в Django?
Я разрабатываю интернет магазин веб сайт.Купил готовый шаблон и попробую написать бэкэнд с Django. На моей домашней странице отображаются карточки продуктов, и, как вы видите на изображении ниже, когда я (hover over)перехожу (обвёл красном на фото) над этих карточек, я могу щелкнуть значок поиска, который открывает модальную страницу (modal popup быстрый просмотр), как показано на втором изображении ниже.
Модальная страница открывается нормально, но со статическими датами. Я хочу взять данные из моих моделей, например изображение из моей модели Product_image, название продукта из моей модели Product. На других моих страницах, например на странице home.html или на странице product_detail.html (страница с одним продуктом) я уже могу получать данные из моделей, но на модальной всплывающей странице я не знаю, как получить данные из моих моделей. Пожалуйста, помогите мне. Коды моей модальной страницы в файле base.html. На всякий случае свои другие файлы тоже внизу вложу.
base.html
<!-- Quick-view modal popup start-->
<div class="modal fade bd-example-modal-lg theme-modal" id="quick-view" tabindex="-1" role="dialog"
aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered" role="document">
<div class="modal-content quick-view-modal">
<div class="modal-body">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">×</span></button>
<div class="row">
<div class="col-lg-6 col-xs-12">
<div class="quick-view-img"><img src="{% static 'product/images/pro3/1.jpg' %}" alt=""
class="img-fluid blur-up lazyload"></div>
</div>
<div class="col-lg-6 rtl-text">
<div class="product-right">
<h2>Women Pink Shirt</h2>
<h3>$32.96</h3>
<ul class="color-variant">
<li class="bg-light0"></li>
</ul>
<div class="border-product">
<h6 class="product-title">product details</h6>
<p>Sed ut perspiciatis, unde omnis iste natus error sit voluptatem accusantium
doloremque laudantium</p>
</div>
<div class="product-buttons"><a href="#" class="btn btn-solid">add to cart</a> <a
href="#" class="btn btn-solid">view detail</a></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
urls.py
from django.urls import path
from . import views
from django.conf.urls.static import static
urlpatterns = [
path('', views.home_page, name='amd-home'),
path('product/<int:id>/', views.product_detail, name='product-detail'),
path('about/', views.about, name='amd-about'),
]
models.py
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from django import template
class Category(models.Model):
name = models.CharField(max_length=200)
parent_id = models.IntegerField(default=0)
description = models.TextField()
image = models.ImageField(upload_to='uploads/')
def __str__(self):
return f'{self.name}'
class Brand(models.Model):
name = models.CharField(max_length=200)
description = models.CharField(max_length=400)
image = models.ImageField(upload_to='uploads/')
def __str__(self):
return f'{self.name}'
class Color_p(models.Model):
color_name = models.CharField(max_length=50, blank=True, null=True, default=None)
color_code = models.CharField(max_length=50, blank=True, null=True, default=None)
def __str__(self):
return f'{self.color_name}'
class Product(models.Model):
title = models.CharField(max_length=200)
image = models.ImageField(upload_to='uploads/', blank=True, null=True)
sku = models.CharField(max_length=200)
price = models.IntegerField(default=0)
price_old = models.IntegerField(default=0)
description = models.TextField()
status = models.BooleanField(default=False)
date_posted = models.DateTimeField(auto_now_add=True)
internal_storage = models.CharField(max_length=50, blank=True, null=True, default=None)
ram = models.CharField(max_length=50, blank=True, null=True, default=None)
user = models.ForeignKey(User, on_delete=models.CASCADE)
brand = models.ForeignKey(Brand, on_delete=models.CASCADE)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
color_pro = models.ForeignKey(Color_p, on_delete=models.CASCADE, default=1)
def __str__(self):
return f'{self.title}, {self.description}'
class Product_image(models.Model):
image = models.ImageField(upload_to='uploads/')
product = models.ForeignKey(Product, on_delete=models.CASCADE, related_name='images')
def __str__(self):
return f'{self.product.title} image'
views.py
from django.shortcuts import render, get_object_or_404
from django.http import HttpResponse
from .models import Product, Product_image, Product_details
def home_page(request):
products = Product.objects.all()
details = Product_details.objects.all()
context = {'products':products, 'details': details}
return render(request, 'product/home.html', context)
def product_detail(request, id):
product = Product.objects.get(pk=id)
photos = Product_image.objects.filter(product=product)
details = Product_details.objects.filter(product=product)
context = {'product':product,'photos':photos, 'details':details,}
return render(request, 'product/product_detail.html', context)

