Реверс для 'project_detail' с ключевыми аргументами '{' pk ': 1}' не найден. Пробовали 1 шаблон (ы): ['projects // int: pk / $'] - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь создать простое приложение-портфолио, используя django, но постоянно получаю эту ошибку. Я везде смотрел в Google, но ничего не помогает. Я в основном пытаюсь связать кнопку Подробнее (в project_index. html) со страницей project_details. html, используя {% url 'project_detail' pk = project.pk%}

Views.py:

from django.shortcuts import render
from projects.models import Project

# Create your views here.

def project_index(request):
    projects = Project.objects.all()
    context = {"projects": projects}
    return render(request, "project_index.html", context)


def project_detail(request, pk):
    project = Project.objects.get(pk=pk)
    context = {"project": project}
    return render(request, "project_detail.html", context)

Urls.py:

from django.urls import path
from projects import views

urlpatterns = [
path("", views.project_index, name="project_index"),
path("/int:pk/", views.project_detail, name="project_detail"),
]

models.py:

from django.db import models

# Create your models here.
class Project(models.Model):
    title = models.CharField(max_length=100)
    description = models.TextField()
    technology = models.CharField(max_length=20)
    image = models.FilePathField(path="/img")

project_index. html:

{% extends "base.html" %}
{% load static %}

{% block page_content %}
<h1>Projects</h1>
<div class="row">
{% for project in projects %}
    <div class="col-md-4">
        <div class="card mb-2">
            <img class="card-img-top" src="{% static project.image %}">
            <div class="card-body">
                <h5 class="card-title">{{ project.title }}</h5>
                <p class="card-text">{{ project.description }}</p>
                **<a href="{% url 'project_detail' pk=project.pk %}"** 
                   class="btn btn-primary">Read More</a>
            </div>
        </div>
    </div>
    {% endfor %}
</div>
{% endblock %}

project_detail. html:

{% extends "base.html" %}
{% load static %}

{% block page_content %}
<h1>{{ project.title }}</h1>
<div class="row">
    <div class="col-md-8">
        <img src="{% static project.image %}" alt="" width="100%">
    </div>
    <div class="col-md-4">
        <h5>About the project:</h5>
        <p>{{ project.description }}</p>
        <br>
        <h5>Technology used:</h5>
        <p>{{ project.technology }}</p>
    </div>
</div>
{% endblock %}

Заранее спасибо.

1 Ответ

0 голосов
/ 27 мая 2020

исправьте ваш url

path("<int:pk>/", views.project_detail, name="project_detail")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...