Django NoReverseMatch с ключевым аргументом не найден - PullRequest
0 голосов
/ 18 сентября 2018

спасибо за вашу помощь.длинный магазин короткий, вот мое мерзавец репо.https://github.com/nelsonyan/track У меня появляется следующее сообщение об ошибке при нажатии на href в строке 22 из employee_list.html.Предполагается, что я перехожу на employee_detail.html для обновления, но выдает следующую ошибку о track_delete теге URL ... С двумя приложениями (отчет, сотрудник) связан внешний ключ, но я не понимаю, почему обновлениеФункция приложения сотрудника связана с функцией удаления приложения отчета.Может ли какой-нибудь эксперт Django помочь мне?

GET URL запроса: http://127.0.0.1:8000/employee/update/7/ Версия Django: 2.0.5 Тип исключения: NoReverseMatch Значение исключения:

Обратное для track_delete'с ключевыми аргументами' {'pk': ''} 'не найдено.Попробован 1 шаблон (ов): ['report \ / delete \ / (? P [0-9] +) \ / $']

Расположение исключения: C: \ Users \ Nelson \ Anaconda3 \ envs \mydjangoenv \ lib \ site-packages \ django \ urls \ resolvers.py в _reverse_with_prefix, строка 632 Исполняемый файл Python: C: \ Users \ Nelson \ Anaconda3 \ envs \ mydjangoenv \ python.exe Версия Python: 3.6.6

Подробно, я пытаюсь создать сайт для отслеживания арт-проекта и отображения информации о сотрудниках компании.Приложение отчета работает хорошо.Он может создавать / отображать / обновлять / удалять записи отчета.Я просто дублирую функцию обновления на приложение сотрудника, но у меня есть вышеуказанная проблема.Вероятно, модели приложения отчета имеют два внешних ключа одного и того же класса из моделей приложения сотрудника (employeelist).Вот почему эти два приложения связаны, но я просто не знаю, как решить эту проблему, поддерживая эти отношения. Я новичок в Django, любые советы приветствуются.
Спасибо

employee_list

{% extends 'base.html' %} 
{% block office_block%}
{% if employee_list %}
    <title>Employee List</title>
    <table class = 'table table-striped table-hover' id = 'my_table'>
      <thead>
        <tr>
          <th><button type="button" class = ' btn btn-info' onclick = 'sortTable(0)'>Name</button></th>
          <th><button type="button" class = ' btn btn-info' onclick = 'sortTable(1)'>Phone Ex</button></th>
          <th><button type="button" class = ' btn btn-info' onclick = 'sortTable(2)'>Email</button></th>
          <th><button type="button" class = ' btn btn-info' onclick = 'sortTable(3)'>Department</button></th>
          <th><button type="button" class = ' btn btn-info' onclick = 'sortTable(4)'>Remote Access</button></th>
          <th>Cell Phone</th>
        </tr>
      </thead>
      <tbody>
        {% for EL in employee_list %}
          <tr>
            <td><a href="{% url 'employee:employee_update' pk=EL.id %}">{{EL.first_name}} {{EL.last_name}}</a></td>
            <td>{{EL.phone_ex}}</td>
            <td>{{EL.email}}</td>
            <td>{{EL.department}}</td>
            <td>{{EL.remote_access}}</td>
            <td>{{EL.cell}}</td>
          </tr>
        {% endfor %}
      </tbody>
    </table>
  <!-- </div> -->
{% else %}
  <p class = 'bg-primary'>Employee List not found</p>
{% endif %}
{% endblock %}

urls.py

from django.urls import path
from . import views
app_name = 'employee'
urlpatterns = [
path('output/', views.EmployeeOutput.as_view(), name = 'employee_list'),
path('input/', views.EmployeeInput.as_view(), name = 'employee_input'),
path('update/<int:pk>/', views.EmployeeUpdate.as_view(), name = 'employee_update'),
]

views.py сотрудник APP

from django.shortcuts import render
from . import models
from employee.forms import EmployeeInputForms
from django.views.generic import (ListView, DetailView, CreateView, UpdateView, DeleteView,)

class EmployeeOutput(ListView):
model = models.EmployeeList
context_object_name = 'employee_list'
template_name = 'employee_list.html'


class EmployeeInput(CreateView):
model = models.EmployeeList
template_name = 'employee_input.html'

form_class = EmployeeInputForms

class EmployeeUpdate(UpdateView):
model = models.EmployeeList
form_class = EmployeeInputForms
context_object_name = 'employee_detail'
template_name = 'employee_detail.html'

base.html

<!DOCTYPE html>
{% load staticfiles %}
{% load bootstrap4 %}       {# import bootstrap4/bootstrap3 #}
{% bootstrap_css %}         {# Embed Bootstrap CSS #}
{% bootstrap_javascript jquery='full' %}  {# Embed Bootstrap JS+jQuery #}

<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="{% static 'css/my_css.css' %}">
</head>
<body>
<div class = 'body_style'>
  <nav class="navbar navbar-expand navbar-light sticky-top" style =     'background-color: #7DBAF2;'>
    <a class="navbar-brand">Marklyn</a>
    <button type="button" class = 'navbar-toggler' data-toggle = 'collapse' data-target = '#navbarSupportedContent' aria-controls = 'navbarSupportedContent' aria-expanded = 'false'
    aria-label  = 'Toggle navigation'> <span class = 'navbar-toggler-icon'></span>
    </button>
    <div class="collapse navbar-collapse" id = 'navbarSupportedContent'>
      <ul class = 'navbar-nav mr-auto'>
        <li class = 'nav-item active'><a class="nav-link" href="{% url 'home:home_page' %}"> <button type="button" class = 'btn btn-secondary'>Home</button><span class = 'sr-only'>(current)</span> </a></li>
        <li class = 'nav-item active'><a class="nav-link" href="{% url 'admin:index' %}"> <button type="button" class = 'btn btn-secondary'>Admin</button><span class = 'sr-only'>(current)</span> </a></li>
        <li class = 'nav-item active'><a class="nav-link" href="{% url 'report:track_report' %}"> <button type="button" class = 'btn btn-secondary'>Report</button><span class = 'sr-only'>(current)</span> </a></li>
        <li class = 'nav-item active'><a class="nav-link" href="{% url 'report:track_input' %}"> <button type="button" class = 'btn btn-secondary'>Enter Request</button><span class = 'sr-only'>(current)</span> </a></li>
        <li class = 'nav-item active'><a class="nav-link" href="{% url 'report:track_data_export' %}"> <button type="button" class = 'btn btn-secondary'>Export data</button><span class = 'sr-only'>(current)</span> </a></li>
        <li class = 'nav-item active'><a class="nav-link" href="{% url 'employee:employee_list' %}"> <button type="button" class = 'btn btn-secondary'>Staff</button><span class = 'sr-only'>(current)</span> </a></li>
        <li class = 'nav-item active'><a class="nav-link" href="{% url 'employee:employee_input' %}"> <button type="button" class = 'btn btn-secondary'>Create Staff</button><span class = 'sr-only'>(current)</span> </a></li>

      </ul>
    </div>

    <ul class = 'navbar-nav ml-auto'>
      <form class="form-inline my-2 my-lg-0" >
        <li><a class="nav-link" href="{% url 'authentication:register' %}"> <button type="button" class = 'btn btn-primary'>Register</button></a></li>
        {% if user.is_authenticated %}
          <li> <a class = 'navbar-link' href="{% url 'authentication:user_logout' %}"><button type="button" class = 'btn btn-success'>Logout</button></a></li>
        {% else %}
          <li> <a class = 'navbar-link' href="{% url 'authentication:user_login' %}"><button type="button" class = 'btn btn-warning'>Login</button></a></li>
        {% endif %}
      </form>
    </ul>
  </nav>
  <div class="bar_on_top">
    {% block office_block %}
    {% endblock %}
  </div>
</div>

<script src = "{% static '/js/sort.js' %}"></script>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css" rel="stylesheet">
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment-with-locales.min.js"></script>

employee_detail.html

{% extends 'base.html' %}
{% block office_block%}
<title>Request Detail</title>
<h1 class = 'my_header'>
  Update Current Request
</h1> <br>
<form enctype="multipart/form-data" method="post">
  {% csrf_token %}
    <div class="container-fluid">
      <div class="row">
        <div class="col-lg-6">
          <table class = 'table table-hover'>
          {{forml}}
          </table>
        </div>
      </div>
      <input type="submit" class = 'btn btn-info' value="Update">
      <!-- <a href="{% url 'report:track_delete' pk=form_delete.pk %}"><button type="button" class = 'btn btn-danger'>Delete</button></a> -->
      <!-- <a href="{% url 'report:track_report'%}"><button type="button" class = 'btn btn-warning'>Cancel</button></a> -->
    </div>
</form>
{% endblock %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...