首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >会议/演习/6/更新/ NoReverseMatch

会议/演习/6/更新/ NoReverseMatch
EN

Stack Overflow用户
提问于 2021-10-08 14:20:40
回答 1查看 79关注 0票数 1

我要疯了。

根据Django调试器,我请求的模式没有反向匹配,但它与urls.py中的URL路径完全相同,并且我将对象id作为所需的参数传递。

会议/锻炼/4/更新/

NoReverseMatch

在没有找到参数的情况下,反向表示“exercise_update”。尝试1种模式:[‘会话/锻炼/(?P0-9+)/update/$’]

模板绘制过程中的错误

这是我的html

代码语言:javascript
复制
<button><a href="{% url 'sessions:exercise_update' exercise.id %}">Update exercise</a></button>

这是我的URL路径

代码语言:javascript
复制
path('exercise/<int:pk>/update/', MyExerciseUpdate.as_view(), name='exercise_update'),

视图只是一个通用的更新视图。

代码语言:javascript
复制
class MyExerciseUpdate(LoginRequiredMixin, UpdateView):
    model = Exercise
    fields = ['my_fields']

我尝试过显示exercise.id,只是为了看看它是否存在,它确实存在。为什么没有争论呢?

另外,我在另一个页面中使用这个路径作为详细视图,并且它工作得很好。

代码语言:javascript
复制
<a href="{% url 'sessions:exercise_detail' exercise.id %}">{{ exercise.name }}</a>

救命求你了。

这是我的整个urls.py文件

代码语言:javascript
复制
from django.urls import path, include
from sessions.views import RoutineList, RoutineDetail, ExerciseDetail, SessionCreate, SessionDetail, ExerciseUpdate
from django.conf.urls.static import static
from django.conf import settings


app_name = 'sessions'

urlpatterns = [
    path('all_routines/', RoutineList.as_view(), name='routine_list'),
    path('routine/<int:pk>/', RoutineDetail.as_view(), name='routine_detail'),
    path('exercise/<int:pk>/detail', ExerciseDetail.as_view(), name='exercise_detail'),
    path('exercise/<int:pk>/update/', ExerciseUpdate.as_view(), name='exercise_update'),
    path('new/', SessionCreate.as_view(), name='session_create'),
    path('detail/<int:pk>/', SessionDetail.as_view(), name='session_detail'),
    
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
EN

回答 1

Stack Overflow用户

发布于 2021-10-11 13:15:28

问题在表单的html中。表单的url缺少exercise.id参数,因此它抛出了无参数错误:

代码语言:javascript
复制
<form action="{% url 'sessions:exercise_update' %}" method="post">

解决方案:

代码语言:javascript
复制
<form action="{% url 'sessions:exercise_update' exercise.id %}" method="post">

现在看起来很傻,但我花了很长时间才弄清楚问题出在哪里。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69497386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档