NoReverseMatch at /project/836d5772-26da-4a9b-811c-806af5b10a41/
.Я получил эту ошибку на странице проектов; Reverse for 'edit-project' with arguments '('',)' not found. 1 pattern(s) tried: ['edit\-project/(?P[^/]+)/$']. Я пытаюсь создать представление редактирования для проектов
Мой views.py
from django.shortcuts import render, redirect
from .models import Project, Skill
from .forms import ProjectForm
# Create your views here.
# rendering our home template
def homePage(request):
projects = Project.objects.all()
skills = Skill.objects.exclude(body="")
otherSkills = Skill.objects.filter(body="")
context = {
"Projects": projects,
"Skills": skills,
"Others": otherSkills,
}
return render(request, "base/home.html", context)
# creating a view for the projects template
def projectsPage(request, pk):
project = Project.objects.get(id=pk) # querying the object by its id
context = {
"Project": project,
}
return render(request, "base/projects.html", context)
# creating a view for project_form template
def addProject(request):
form = ProjectForm()
# If request method is equal to POST, submit this form
if request.method == "POST":
# pass in the original post data and any files send from the frontend(we're sending files right to enctype)
form = ProjectForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect("home")
context = {
"Form": form,
}
return render(request, "base/project_form.html", context)
# creating an edit projects view
def editProject(request, pk):
project = Project.objects.get(id=pk)
form = ProjectForm(instance=project)
if request.method == "POST":
form = ProjectForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect("")
context = {
"Form": form,
}
return render(request, "base/project_form.html", context)
Мой urls.py
from django.urls import path
from . import views
urlpatterns = [
path("", views.homePage, name='home'),
path("project/<str:pk>/", views.projectsPage, name='projects'),
path("add-project/", views.addProject, name='add-project'),
path("edit-project/<str:pk>/", views.editProject, name='edit-project'),
]
Мои проекты.html
{% extends "base/main.html" %}
{% load static %}
{% block content %}
<div style="padding:3.5em;" class="container">
<img class="project-image" src="{{Project.thumbnail.url}}" alt="">
<h1>{{Project.title}}</h1>
<hr>
<p>{{Project.body}}</p>
<a class="btn btn-warning" href="{% url 'edit-project' project.id %}">Edit</a>
</div>
{% endblock content %}
Ссылка Edit не отображается на projects.html (Выдает вышеуказанную ошибку, когда я нажимаю на любой из проектов). Я не очень понимаю, где может быть проблема. Любая помощь будет высоко оценена