Проблема с django, когда я передаю идентификатор продукта методом get
В теге href я хочу отправить идентификатор продукта, но этот код выдает ошибку.
Не удалось разобрать остаток: 'data.id' из "viewproduct"data.id'
{% для данных в data %}
<div class="item mt-5">
<div class="card" >
**<a href={% url 'viewproduct'data.id %}>**
<img class="women" src="{{data.image.url}} "alt="First slide">
</div>
<div class="card-body text-center">
<h4>{{data.name}}</h4>
</div></a>
</div>
{% endfor %}
Существует несоответствие между указанным вами URL-адресом в urls.py и тем, который используется в ваших шаблонах. Судя по вашим комментариям, URL-адрес вашего product_detail называется product_detail, но вы пытаетесь использовать обратное значение для viewproduct в своих шаблонах. Так что на самом деле это должно быть:
<a href={% url 'product_detail' data.id %}>
Поскольку мы не видели ваши просмотры, это также предполагает, что у вас есть контекстные данные в вашем views.py с идентификатором атрибута. Что-то вроде этого:
from django.shortcuts import render, get_object_or_404
from .models import Product
def product_detail(request, product_id):
data = get_object_or_404(Product, id=product_id)
context = {'data': data}
return render(request, 'product_detail.html', context)
Также обратите внимание, что вам нужно оставить пробел между URL-адресом и идентификатором. Все, что вы отправили, объединено, и Django не сможет распознать остальное.
Вам нужно добавить пробел между строковым литералом 'viewproduct' и data.id, чтобы {% url 'viewproduct' data.id %}.