Я не могу передать объект на страницу display_item.html со страницы index в Djanog

Я очень долго пытался передать элемент, который получается через цикл for в языке шаблонов Django. Элемент - это объект. Я перепробовал множество различных вариантов, но пока ничего не получается.

Это индексный файл.

{% extends "auctions/layout.html" %}

{% block body %}
    <h2>Active Listings</h2>
    {% for item in listings %}
   
   
    <a href="{% url 'display_item' entry=item  %}">
   
        <img src="/media/{{ item.image_url }}" width="300" height="400" alt="Picture of the item.">
   
        <h3>{{ item.title }}</h3>
   
    </a>
    <p>{{ item.description }}</p>
    <h5>Starting bid: {{ item.starting_bid }}</h5>
    {% empty %}
    <h4>No listings to display!</h4>
   {% endfor %}
{% endblock %}

Это файл, который должен отображать объект.

{% extends 'auctions/layout.html' %}

{% block body %}
<img src="/media/{{ item.image_url }}" width="400" alt="Picture of item here.">
<p>{{ item.category }}</p>
<h3>{{ item.title }}</h3>
<p>{{ item.description }}</p>
<br>
<br>
<h5>Created by {{ item.created_by }}</h5>
<p>{{ item.created_at }}</p>
{% endblock %}

Это файл URLS.py.

from django.conf import settings 
from django.conf.urls.static import static

from django.urls import path

from . import views

urlpatterns = [
    path("", views.index, name="index"),
    path("login", views.login_view, name="login"),
    path("logout", views.logout_view, name="logout"),
    path("register", views.register, name="register"),
    path("new_listing", views.new_listing, name="new_listing"),
    path("display_item/<str:entry>/", views.display_item , name="display_item")
]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

И, наконец, это мой файл views.py.

Я пробовал chatGPT, я пытался проверить его datatype и отрисовать его, но он не виден. Проверяю свой код кучу раз.

Я ожидал, что это сработает.

Итак, в Django мы не можем напрямую передавать объекты через URL. Что мы должны сделать, так это передать через URL некоторый способ (обычно ID) функции, которая будет рендерить последующую страницу, а затем вызвать этот объект в этой функции представления напрямую.

Вернуться на верх