Проблемы с формой для редактирования модели в Django - Reverse for 'variable name' not found

В настоящее время у меня возникла проблема с отображением формы, следующий код изображает проблему:


views.py

class LeadUpdate(UpdateView):
    model = Leads
    fields='__all__'
    template_name_suffix = '_update_form'

urls.py

from django.urls import path, include
from django.contrib.auth import views as auth_views
from . import views

urlpatterns = [
    path('login/', auth_views.LoginView.as_view(), name='login'),
    path('logout/', auth_views.LogoutView.as_view(), name='logout'),
    path('', views.dashboard, name='dashboard'),
    path('', include('django.contrib.auth.urls')),
    path('edit/', views.edit, name='edit'),
    path('add_client/', views.add_client, name='add_client'),
    path('add_company/', views.add_company,name='add_company'),
    path('add_lead/', views.add_lead, name='add_lead'),
    path('add_call/', views.add_call, name='add_call'),
    path('add_status/', views.add_status, name='status'),
    path('leads_view/', views.leads_view, name='leads_view'),
    path('client_view/', views.client_view, name='client_view'),
    path('deal_view/', views.deal_view, name='deal_view'),
    path('<int:project_id>/',views.LeadUpdate.as_view(), name='edit_lead')
]

Проблема, с которой я столкнулся, соответствует последнему URL

Приборная панель, отображающая список и веб-приложение, спроектирована таким образом, что когда пользователь нажимает на номер, вы можете редактировать форму dashboard.html

    <table class="styled-table">
        <thead>
            <tr>
                <th>Project ID</th>
                <th>Agent</th>
                <th>Company</th>
                <th>Country</th>
                <th>Modelling Services</th>
                <th>Est. Closing Date</th>
                <th>Est. Revenue</th>
                <th>Est. # of Licenses</th>
                <th>Status</th>
            </tr>
        </thead>
        <tbody>
        {% for lead in leads %}
            <tr>
                <td><a href="{% url 'project_id' lead.project_id %}">{{lead.project_id }}</a></td>
                <td>{{ lead.agent }}</td>
                <td>{{ lead.company }}</td>
                <td>{{ lead.country }}</td>
                <td>{{ lead.modeling_services }}</td>
                <td>{{ lead.estimated_closing_date }}</td>
                <td>{{ lead.expected_revenue }}</td>
                <td>{{ lead.expected_licenses }}</td>
                <td>{{ lead.status }}</td>
            </tr>
        {% endfor %}
        </tbody>
    </table>


Это файл edit_lead.html

{% extends "base.html" %}

{% block title %}Client Information {% endblock %}

{% block content %}
  <h1> Edit Lead </h1>
  <p>Please use the form below to edit your lead</p>

    <form method="post" enctype="multipart/form-data">
      {% csrf_token %}
    <table>{{ form.as_p }} </table>

    <p><input type="submit" value="Save changes"></p>
    </form>


{% endblock %}

Это ошибка: NoReverseMatch at /account/ Обратное соответствие для 'project_id' не найдено. 'project_id' не является допустимой функцией представления или именем шаблона. Метод запроса: GET URL запроса: http://127.0.0.1:8000/account/. Версия Django: 3.2.5 Тип исключения: NoReverseMatch Значение исключения:
Обратное соответствие для 'project_id' не найдено. 'project_id' не является допустимой функцией представления или именем шаблона. Местоположение исключения: C:\Users\fcolina\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\django\urls\resolvers.py, строка 694, in _reverse_with_prefix Python Executable: C:\Users\fcolina\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\python.exe Версия Python: 3.9.7 Python Path:
['C:\Users\fcolina\PycharmProjects\crmdb', 'C:\Program' 'Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.2032.0_x64__qbz5n2kfra8p0\python39.zip', 'C:\Program' 'Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.2032.0_x64__qbz5n2kfra8p0\DLLs', 'C:\Program' 'Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.2032.0_x64__qbz5n2kfra8p0\lib', 'C:\Users\fcolina\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0', 'C:\Users\fcolina\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages', 'C:\Program' 'Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.2032.0_x64__qbz5n2kfra8p0', 'C:\Program' 'Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.2032.0_x64__qbz5n2kfra8p0\lib\site-packages']. Время сервера: Sun, 05 Sep 2021 20:23:33 +0000

Тег шаблона django url принимает в качестве первого аргумента urlpattern name. Вам следует обновить его до:

<td><a href="{% url 'edit_lead' lead.project_id %}">{{lead.project_id }}</a></td>

https://docs.djangoproject.com/en/3.2/ref/templates/builtins/#url

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