首页 > 其他分享 >django 报错 'set' object is not reversible 解决

django 报错 'set' object is not reversible 解决

时间:2022-10-12 12:33:54浏览次数:82  
标签:f2 set py app2 object 报错 app1 urls

我的博客

这个问题在网上随便一搜就有解决办法,说是把urls.py里面的urlpatterns = 这部分的{}改成[]就可以了,想想也对,毕竟里面是个list也不是个dict

先说下我的project内容

我用的命令是

python manage.py startproject myweb

python manage.py startapp app1

python manage.py startapp app2

创建了一个project和2个app

我的myweb里面的urls.py内容是

urlpatterns = {
    path('admin/', admin.site.urls),
    path('app1/', include('app1.urls')),
    path('app2/', include('app2.urls')),
}

app1里面的urls.py内容是

app_name = 'app1'

urlpatterns = {
   path('f/',views.f, name='f'),
}

views里面f的方法很简单,就是显示hello,这个就不单独写了

然后是app2里面的urls.py内容

app_name = 'app2'

urlpatterns = {
   path('f2/',views.f2, name='f2'),
}

这个views里面的f2方法是调用a.html这个页面,也就是

def f2(request):
  return render(request,'f2.html')

再说说a.html这个

{% load static %}
<html>
  <body>
    <a href="{% url 'app2:f2' %}">test</a>
  </body>
</html>

好了,一切准备就绪,有心的同学一定看到了myweb和app1、app2里面的urls.py全都是{}

测试下页面,结果报错'set' object is not reversible

报错内容指向{% url 'app2:f2' %}

那么我就按照网上的说法,把myweb下的urls.py里面的{}改成了[]

结果还是不行,这时候我其实没有想到是因为app1和app2的原因,就又搜了一下,结果有人说要改{% url 'app2:f2' %}改成[% url 'app2:f2' %]

于是我改了,结果页面居然正常了,正当我满心欢喜的测试的时候,意外出现了,点击test直接跳转到http://127.0.0.1[% url 'app2:f2' %]

我勒个去,这是什么玩意,那尼玛这个链接有个毛用,于是又改了回来,还是报错

经过深思熟虑和再三的验证,这时候发现了app1和app2的倪端,本着试一试的想法,把app1和app2里面urls.py中的{}也给改成了[]

再次测试,正常显示,并且链接正确,直到这里,整个故事就算结束了

可是有一点我想不明白,我用的app2和myweb的urls.py和app1有什么关系,问题是我不改app1,页面依然报同一个错误

标签:f2,set,py,app2,object,报错,app1,urls
From: https://www.cnblogs.com/xiu123/p/16784121.html

相关文章

  • oracle 21c expdp报错误UDE-31623
     环境:OS:Centos7DB:21C 导出报错expdpc##goldengate/goldengate@tnspdb1tables=hxl.tb_testdumpfile=tb_test.dmpFLASHBACK_SCN=4990304parallel=5direct......
  • 【java报错】java运行jar命令提示没有主清单属性
    java运行jar命令提示没有主清单属性在JAVA中将class文件编译成jar文件包,运行提示没有主清单属性。这是怎么回事?今天来教大家如何解决这个问题1、在java中编译JAR文件的......
  • CENTOS安装NGINX报错
    1特别是在CentOS7上安装Nginx,不确定你有什么样的错误(无法打开你的图像/图片),但刚刚在CentOS7上尝试过(大约10分钟前)(VagrantBox"CentOS-7.2-1.8T"),它通过......
  • 【精品】vue3中setup语法糖下通用的分页插件
    注意:本博客理论基础:https://blog.51cto.com/lianghecai/5743179效果自定义分页插件:PagePlugin.vue<scriptsetuplang="ts">//total:用来传递数据总条数//pageSize......
  • ActiveMQ启动报错(端口被占用):java.lang.IllegalStateException
    ActiveMQ端口被异常占用这个问题太恶心了,启动Tomcat,默认的端口是8080,死活启动不了,看着报错信息就是端口被占用,网上一直搜索解决办法:netstat-aon|findstr"8080" 然......
  • 3D目标检测深度学习方法中voxel-represetnation内容综述(三)
    ​前言​前两篇文章:3D目标检测深度学习方法中voxel-represetnation内容综述(一)、3D目标检测深度学习方法中voxel-represetnation内容综述(二)分别介绍了当前voxel-representa......
  • DataCore PlgIn for vCenter 3.0 SETTINGs
    第1章 VMwarevSphere3.0Plug-In只需要4步骤,可以在vCenterClient配置一颗存储,可具备高可用性,Multipath-RoundRobin,HighCaching...etc是不是很有趣。1.1 概述VMware......
  • shell 知识点补充(1)-提示字符的设定/read/declare / typeset/变量设定功能/别名/万用
    1、PS1:(提示字符的设定)这个比较有意思,可以定制自己的提示符;当我们每次按下[Enter]按键去执行某个指令后,最后要再次出现提示字符时,就会主动去读取这个变数值了。预设的......
  • kali msfconsole报错
    报错内容1命令行执行msfconsole报错Couldnotfindnokogiri-1.10.10inanyofthesourcesYoumayneedtouninstallorupgradebundler2根据该链接https://blo......
  • golang-set包的用法及源码解析
    Set是一种基本的数据结构,它具备确定性、互异性、无序性三个特点。因此,在开发过程中我们通常用它来判断一些数据的集合与另一个数据集合或者元素的包含关系。在大部分开发......