python - django 反向 url 错误
问题描述
我在 urls.py 中有以下代码
urlpatterns=[
path('estimate_insert/',views.estimate_ui,name='estimate_i'),
path('<int:id>/',views.estimate_ui,name='estimate_u'),
path('estimate_delete/<int:id>/',views.estimate_d,name='estimate_d'),
path('estimate_preview/<int:id>/',views.estimate_preview,name='estimate_v'),
]
我将这些 url 与 views.py 中的以下代码匹配
def estimate_ui(request,id=0):
if request.method=="GET":
if id==0:
form=EstimateForm()
else:
obj_estimate=Estimate.objects.get(pk=id)
form=EstimateForm(instance=obj_estimate)
return render(request,"Invoices/estimate_ui.html",{'form':form})
else:
if id==0:
form=EstimateForm(request.POST)
else:
obj_estimate=Estimate.objects.get(pk=id)
form=EstimateForm(request.POST,instance=obj_estimate)
if form.is_valid():
form.save()
return redirect('/invoices/')
当我访问它时,下面提到的 url 会导致问题。
path('<int:id>/',views.estimate_ui,name='estimate_u'),
当我访问时,我收到以下错误
NoReverseMatch at /invoices/status/3/
Reverse for 'estimate_u' with arguments '('',)' not found. 1 pattern(s) tried: ['estimate/(?P<id>[0-9]+)/$']
Request Method:
GET
Request URL:
http://127.0.0.1:8000/invoices/status/3/
Django Version:
3.1.4
Exception Type:
NoReverseMatch
Exception Value:
Reverse for 'estimate_u' with arguments '('',)' not found. 1 pattern(s) tried: ['estimate/(?P<id>[0-9]+)/$']
谁能解释为什么会这样。我正在访问index.html--> linked to move to status.html(it has link to move estimate.html)--> at estimate.html
我有很多步骤,它基本上是一个基于工作流的应用程序。我在 youtube 上观看了几乎所有与 url 相关的视频,搜索了 google,但没有找到任何帮助。谢谢
解决方案
推荐阅读
- encryption - 有没有办法用不同的密钥加密 mp4 的不同部分?
- python - Pandas groupby 被 NaN 分割
- talend - 如何在 Talend 中读取多个 Excel 工作表并处理它们并根据工作表名称将输出发送到不同的 Excel 工作表?
- php - 如何创建 PHP rest api 以从任何设备上传文件?
- gremlin - Gremlin drop 只删除子图的第一个顶点
- python - 我怎样才能弄清楚这个关于使用 pip 安装端口的问题
- python - 在没有名称的列表中打印一定数量的元组
- php - 如果它们都在数据库的同一行中匹配,我如何在 laravel api 中显示两个参数
- aws-serverless - 如何在 stepfunction 参数中使用无服务器环境变量
- java - 如何从 groovy 文件中的不同包中导入类