#django #django-models #bootstrap-4 #django-templates #bootstrap-modal
Вопрос:
Я столкнулся с проблемой передачи данных модели в модальный режим начальной загрузки. Информация не отображается в режиме начальной загрузки, но когда я пытаюсь передать данные в обычный шаблон, информация отображается.
Не могли бы вы, ребята, пожалуйста, помочь мне выяснить, в чем проблема. Я буду очень признателен вам за помощь!
Вот код.
catalog.html
<div class="row">
{% for getdata in furniture %}
<div class="col-md-4">
<a class="" href="{{ getdata.update_view_count_url }}" data-toggle="modal" data-target="#product_modal">
<div class="card text-center mb-5">
<img src="{{baseUrl}}/{{getdata.furnitureImg}}" alt="" class="card-img-top mt-3 px-2">
<div class="card-body">
<h3 class="card__fName text-uppercase">{{getdata.furnitureName}}</h3>
<h2 class="card__fPrice">${{getdata.unitPrice}}</h2>
<a href="{{ getdata.add_to_cart_url }}" class="card__button text-uppercase">
<i class="uil uil-shopping-cart"></i>
Add To Cart
</a>
</div>
</div>
</a>
</div>
{% endfor %}
{% include 'user/product.html' %}
</div>
models.py
def update_view_count_url(self):
return reverse("ecommerce:view", kwargs={
'slug': self.slug
})
urls.py
from django.urls import path
from . import views
from . import recommendation
from .views import ItemDetailView, CartDetailView, OrderSummaryView
app_name = 'ecommerce'
urlpatterns = [
path('view/<slug>/', views.updateViewToItem, name='view'),
path('product/<slug>/', ItemDetailView.as_view(), name='product'),
]
views.py
class ItemDetailView(DetailView):
model = Furniture
template_name = "user/product.html"
# View the item after clicking
def updateViewToItem(request, slug):
item = get_object_or_404(Furniture, slug=slug)
viewed_item = User_Views.objects.filter(userId=request.user, furnitureId=item)
if viewed_item.exists():
get_viewed_item = User_Views.objects.get(userId=request.user, furnitureId=item)
get_viewed_item.viewCount = 1
get_viewed_item.save()
else:
view = User_Views.objects.create(userId=request.user, furnitureId=item, viewCount=1)
return redirect('ecommerce:product', slug=slug)
product.html
{% load static %}
{% static "images/" as baseUrl %}
{% block content %}
<div class="modal fade" id="product_modal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h2>item profile listings</h2>
<button type="button" class="close" data-dismiss="modal">amp;times;</button>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-7">
<img src="{{baseUrl}}/{{object.furnitureImg}}" alt="">
</div>
<div class="col md-5" style="color: black;">
<span>Name : {{ object.furnitureName }}</span><br>
<span>Price : ${{ object.unitPrice }}</span><br>
</div>
</div>
</div>
<div class="modal-footer">
<a href="{% url 'ecommerce:cart' %}" class="card__button text-uppercase">
<i class="uil uil-shopping-cart icon__size"></i>
Add To Cart
</a>
</div>
</div>
</div>
</div>
{% endblock content %}
#вывод(модальный) , когда я выбираю мебель#
Комментарии:
1. Не могли бы вы отладить свой
updateViewToItem()
методprint(item)
сразу после присвоения значенияitem
? Возможно, вы неправильно передадите поле slug в свой шаблон. Во-первых, убедитесь, чтоitem
этого объекта нетNone
; на самом деле он имеет значение.