สำหรับฉันข้อผิดพลาดนี้เกิดขึ้นในโครงการ django ของฉันเพราะสิ่งต่อไปนี้:
ฉันแทรกไฮเปอร์ลิงก์ใหม่ในหน้าแรกของฉัน HTML แสดงอยู่ในโฟลเดอร์แม่แบบของโครงการของฉันดังนี้:
<input type="button" value="About" onclick="location.href='{% url 'about' %}'">
ใน Views.py ฉันมีคำจำกัดความของการนับและเกี่ยวกับต่อไปนี้:
def count(request):
fulltext = request.GET['fulltext']
wordlist = fulltext.split()
worddict = {}
for word in wordlist:
if word in worddict:
worddict[word] += 1
else:
worddict[word] = 1
worddict = sorted(worddict.items(), key = operator.itemgetter(1),reverse=True)
return render(request,'count.html', 'fulltext':fulltext,'count':len(wordlist),'worddict'::worddict})
def about(request):
return render(request,"about.html")
- ใน url.py ฉันมีรูปแบบ URL ต่อไปนี้:
urlpatterns = [
path('admin/', admin.site.urls),
path('',views.homepage,name="home"),
path('eggs',views.eggs),
path('count/',views.count,name="count"),
path('about/',views.count,name="about"),
]
ที่สามารถเห็นได้ในหมายเลข 3 ด้านบนในรูปแบบ URL ล่าสุดฉันโทรไปยัง views.count อย่างไม่ถูกต้องในขณะที่ฉันต้องการเรียกใช้ views.about fulltext = request.GET['fulltext']
ฟังก์ชั่นการนับบรรทัดนี้(ซึ่งถูกเรียกผิดเนื่องจากความผิดพลาดในรายการ urlpatterns) ของ views.py ทำให้เกิดข้อยกเว้นแบบหลายค่าคีย์
จากนั้นฉันเปลี่ยนรูปแบบ URL ล่าสุดเป็น url.py ให้เป็นรูปแบบที่ถูกต้องนั่นคือpath('about/',views.about,name="about")
ทุกอย่างทำงานได้ดี
เห็นได้ชัดว่าโดยทั่วไปแล้วโปรแกรมเมอร์มือใหม่ใน django สามารถทำผิดพลาดได้ฉันทำผิดพลาดในการเรียกฟังก์ชั่นมุมมองอื่นสำหรับ url ซึ่งอาจคาดหวังว่าชุดพารามิเตอร์ที่แตกต่างกันหรือผ่านชุดของวัตถุต่าง ๆ ในการแสดงผล
หวังว่านี่จะช่วยโปรแกรมเมอร์ใหม่ให้กับ django