Обратный для ‘user_edit’ не найден. ‘user_edit’ не является допустимой функцией просмотра или именем шаблона

#python #django-2.2

#python #django-2.2

Вопрос:

Я застрял на этом некоторое время, похоже, не могу исправить ошибку. Я проверял код сто раз, но, очевидно, я чего-то не хватает. Я также установил свое приложение.

Я создал операции CRUD для пользователя с помощью 3 кнопок: Подробности, Редактирование и удаление. Вторые 2 работают именно так, как и должно быть, но первый «Подробности» выдает мне эту ошибку:

В /users/details / 1 не найдено обратное значение для ‘user_edit’. ‘user_edit’ не является допустимой функцией просмотра или именем шаблона.

Я пытаюсь отобразить функцию user_details, и я не могу найти, почему выдает мне сообщение об ошибке user_edit.

Кто-нибудь может увидеть, чего мне не хватает?

views.py

 def user_details(request, id=None):
    context = {}
    context['user'] = get_object_or_404(User, id=id)
    return render(request, 'userdetails.html', context)

def user_add(request):
    context = {}
    if request.method == 'POST':
        u = user_form = UserForm(request.POST)
        context['user_form'] = user_form
        if user_form.is_valid():
            user_form.save()
            return HttpResponseRedirect(reverse('feedback:users'))
        else:
            return render(request, 'useradd.html', context)
    else:
        user_form = UserForm()
        context['user_form'] = user_form
        return render(request, 'useradd.html', context)

def user_edit(request, id=None):
    context = {}
    user = get_object_or_404(User, id=id)
    if request.method == 'POST':
        user_form = UserForm(request.POST, instance=user)
        context['user_form'] = user_form
        if user_form.is_valid():
            user_form.save()
            return HttpResponseRedirect(reverse('feedback:users'))
        else:
            return render(request, 'useredit.html', context)
    else:
        user_form = UserForm(instance=user)
        context['user_form'] = user_form
        return render(request, 'useredit.html', context)

def user_delete(request, id=None):
    context = {}
    return render(request, 'userdelete.html', context)
  

urls.py

 from django.urls import path, include
from . import views

app_name = 'feedback'

urlpatterns = [
    path('login/', views.loginPage, name="login"),
    path('logout/', views.logoutUser, name="logout"),

    path('', views.index, name="index"),  
    
    path('patient/', views.patient, name="patient"),

    path('surveys/', views.surveys, name="surveys"),
    path('surveys/details/<int:id>', views.survey_details, name="surveydetails"),

    path('department/', views.department, name="department"),

    path('staff/', views.staff, name="staff"),

    path('imports/', views.imports, name="imports"),
    
    path('logs/', views.logs, name="logs"),
    
    path('users/', views.users, name="users"),
    path('users/add', views.user_add, name="useradd"),
    path('users/details/<int:id>', views.user_details, name="userdetails"),
    path('users/edit/<int:id>', views.user_edit, name="useredit"),
    path('users/delete/<int:id>', views.user_delete, name="userdelete"),

    path('webflowroute/', views.webflowroute, name="webflowroute"),
    ]
  

users.html (в основном моя индексная страница для навигации по CRUD)

 {% extends 'main.html' %}

{% block content%}

    <h1>Users</h1>
    <a href="/users/add">Add user</a>
    <h2>List of {{title}} </h2>
    {% if users %}
        <ul>
            {% for user in users %}
                <li>
                    {{user.first_name}} amp;nbsp; {{user.last_name}}
                    <td class="text-center">
                        <a class="btn btn-primary float-center" href="{% url 'feedback:userdetails' user.id %}">Details</a>
                        <a class="btn btn-warning float-center" href="{% url 'feedback:useredit' user.id %}">Edit</a>
                        <a class="btn btn-danger float-center" href="{% url 'feedback:userdelete' user.id %}">Delete</a>
                    </td>
                </li>
            {% endfor %}
        </ul>
        {% else %}
            <p>There is no users available</p>
        {% endif %}
{% endblock content %}
  

Ответ №1:

Можете ли вы предоставить urls.py файл, присутствующий в папке проекта?? Я думаю, что проблема в urls.py файл, присутствующий в папке проекта, вы должны указать ‘ appname’ и ‘ namescape’.

Ответ №2:

В urls.py файле, в строке

 path('users/edit/<int:id>', views.user_edit, name="useredit"),
  

изменить name="useredit" на name="user_edit"

Комментарии:

1. Я пробовал ваши предложения, но ничего не происходит, и я действительно не думаю, что это ошибка, потому что я использовал это имя только в шаблоне html