小白求助django问题
跳转网页传递参数,但是传的参数是IP,另一个例子传的是数字就不会报错错误代码
Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8000/ip/10.116.4.247/edit/
Using the URLconf defined in bysms.urls, Django tried these URL patterns, in this order:
ip/list/
ip/<int:nid>/edit/
The current path, ip/10.116.4.247/edit/, didn’t match any of these.
You’re seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.
部分代码
HTML的
<a class="btn btn-primary btn-xs" href="/ip/{{ obj.ip_address }}/edit/">修改信息</a>
urls的
path('ip/<int:nid>/edit/', views.ip_edit),
views的
def ip_edit(request, nid):
if request.method == "GET":
row_object = models.ipinfo.objects.filter(ip_address=nid).first()
return render(request, "ip_edit.html", {"row_object": row_object})
求大佬解答谢谢 你好!很高兴能帮助你解决Django问题。从你提供的错误信息和代码来看,问题出在URL配置。因为你的URL中传递的是IP地址而不是整数,所以`<int:nid>`在这里不适用。你需要修改一下你的URL配置来匹配IP地址。
首先,我们需要在`urls.py`中更新URL模式。可以使用`<str:nid>`来代替`<int:nid>`,这样可以匹配IP地址这样的字符串:
path('ip/<str:nid>/edit/', views.ip_edit),
然后,你需要在`views.py`中的`ip_edit`视图中相应地修改参数:
def ip_edit(request, nid):
if request.method == "GET":
row_object = models.ipinfo.objects.filter(ip_address=nid).first()
return render(request, "ip_edit.html", {"row_object": row_object})
这样,你的视图就可以接收IP地址字符串作为参数了。注意,这里的`nid`现在是一个字符串,你不需要对其进行类型转换。
如果你还有其他问题,欢迎继续提问! 根据错误信息来看,您的 url 路径参数是 10.116.4.247,但是 views.ip_edit() 函数中接收的参数却是一个整数类型的 nid。因此,需要将路由配置中 <int:nid> 部分修改为 <str:nid>,以便可以正确地接收 IP 地址作为字符串类型的参数。
换句话说,你的IP是xxx.xxx.xxx.xxx,但是views.ip_edit希望这是整数。ip只能用字符串的形式接收
修改后的示例代码如下:
HTML的
<a class="btn btn-primary btn-xs" href="/ip/{{ obj.ip_address }}/edit/">修改信息</a>
urls的
path('ip/<str:nid>/edit/', views.ip_edit),
views的
def ip_edit(request, nid):
if request.method == "GET":
row_object = models.ipinfo.objects.filter(ip_address=nid).first()
return render(request, "ip_edit.html", {"row_object": row_object}) 回复审核去了,等待片刻 歌者文明清理员 发表于 2023-4-20 17:55
回复审核去了,等待片刻
我的回复排在你前面{:10_334:} isdkz 发表于 2023-4-20 17:56
我的回复排在你前面
都去审核了{:10_277:}??
我有证据
被审核了,简单说一下问题,ip不是一个整数,而是字符串,应该要用 <str:nid> isdkz 发表于 2023-4-20 17:57
被审核了,简单说一下问题,ip不是一个整数,而是字符串,应该要用
???@不二如是 歌者文明清理员 发表于 2023-4-20 17:58
???@不二如是
应该是这个帖子有哪个敏感词,他的帖子也是审核后才放出来的 isdkz 发表于 2023-4-20 17:58
应该是这个帖子有哪个敏感词,他的帖子也是审核后才放出来的
跳转网页传递参数,但是传的参数是IP,另一个例子传的是数字就不会报错
错误代码
Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8000/ip/10.116.4.247/edit/
Using the URLconf defined in bysms.urls, Django tried these URL patterns, in this order:
ip/list/
ip/<int:nid>/edit/
The current path, ip/10.116.4.247/edit/, didn’t match any of these.
You’re seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.
部分代码
HTML的
<a class="btn btn-primary btn-xs" href="/ip/{{ obj.ip_address }}/edit/">修改信息</a>
urls的
path('ip/<int:nid>/edit/', views.ip_edit),
views的
def ip_edit(request, nid):
if request.method == "GET":
row_object = models.ipinfo.objects.filter(ip_address=nid).first()
return render(request, "ip_edit.html", {"row_object": row_object})
求大佬解答谢谢
isdkz 发表于 2023-4-20 17:58
应该是这个帖子有哪个敏感词,他的帖子也是审核后才放出来的
我复制了他的帖子,也审核了 歌者文明清理员 发表于 2023-4-20 18:00
不要重复我说过的,说个不一样的{:10_334:} isdkz 发表于 2023-4-20 18:02
不要重复我说过的,说个不一样的
所以最佳给谁 歌者文明清理员 发表于 2023-4-20 18:08
所以最佳给谁
我去,不讲武德,你还卖惨 isdkz 发表于 2023-4-20 18:10
我去,不讲武德,你还卖惨
你不是要说来一个不一样的吗{:10_256:} 谢谢两位大佬了{:10_281:}
页:
[1]