#python #django #django-models #django-views #django-templates
Вопрос:
Я работаю над небольшим проектом Django и создал множество взаимосвязей между двумя моделями(скажем, продуктами и подпродуктами). И мой проект содержит два URL-адреса, сначала для получения всех данных в таблице продуктов, а другая ссылка-для получения связанных продуктов, связанных с конкретным продуктом.
Я передаю идентификатор продукта из шаблона для просмотра следующим образом:-
<a href='sub/{{ x.id }}'><img src="{{x.pic.url}}" alt="" class="card-img-top" height="200px"></a>
url.py :-
urlpatterns = [
path('admin/', admin.site.urls),
path('home/', home_page_view, name='homepage'),
path('sub/<int:id>/', product_sub, name='relatedproducts'),
] static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
просмотр функций:-
def product_sub(request, id):
var = Products.objects.get(id=id)
querysets = Sub_Products.objects.filter(products=var)
context = {
"object_list": querysets
}
print(context)
return render(request, "subproducts.html", context)
Теперь, когда я когда-либо нажимаю на ссылку с изображением, чтобы получить связанный проект, который я получаю Page not found (404)
.
Точная Ошибка:-
“C:UsersAdminPycharmProjectsecommerceprojectmediahomesub7” does not exist
Но если я использую оболочку для доступа к подпродуктам, я получаю желаемый результат.
Ответ №1:
Вместо этого используйте имена URL-адресов:
<a href="{% url 'relatedproducts' id=x.id %}"><img src="{{x.pic.url}}" alt="" class="card-img-top" height="200px"></a>