找不到 'user_edit' 的反向。 'user_edit' 不是有效的视图函数或模式名称
Reverse for 'user_edit' not found. 'user_edit' is not a valid view function or pattern name
我已经坚持了一段时间,似乎无法修复错误。我已经检查了代码一百次,但显然我遗漏了一些东西。我也安装了我的应用程序。
我使用 3 个按钮为用户创建了 CRUD 操作:详细信息、编辑 和删除 .第二个 2 完全按照它应该的方式工作,但是第一个 'Details' 给了我这个错误:
NoReverseMatch at /users/details/1 Reverse for 'user_edit' not found. 'user_edit' is not a valid view function or pattern name.
我正在尝试渲染 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}} {{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 %}
你能提供项目文件夹中的 urls.py 文件吗??
我认为问题出在项目文件夹中的 urls.py 文件,您应该提供“appname”和“namescape”
在 urls.py
文件中,在行
path('users/edit/<int:id>', views.user_edit, name="useredit"),
将name="useredit"
更改为name="user_edit"
我已经坚持了一段时间,似乎无法修复错误。我已经检查了代码一百次,但显然我遗漏了一些东西。我也安装了我的应用程序。
我使用 3 个按钮为用户创建了 CRUD 操作:详细信息、编辑 和删除 .第二个 2 完全按照它应该的方式工作,但是第一个 'Details' 给了我这个错误:
NoReverseMatch at /users/details/1 Reverse for 'user_edit' not found. 'user_edit' is not a valid view function or pattern name.
我正在尝试渲染 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}} {{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 %}
你能提供项目文件夹中的 urls.py 文件吗?? 我认为问题出在项目文件夹中的 urls.py 文件,您应该提供“appname”和“namescape”
在 urls.py
文件中,在行
path('users/edit/<int:id>', views.user_edit, name="useredit"),
将name="useredit"
更改为name="user_edit"