Python Django-创建随机页面选择器
我希望在主页上创建一个链接,当点击时,会随机将用户重定向到网站上5个入口页面中的1个(CSS、Django、Git、HTML、Python) 我看到其他人问了本质上相同的问题(),我试着按照这两个答案来回答,但现在当我点击我的随机页面链接时,我出现了一个错误: NoReverseMatch at/wiki/random/ 找不到参数为“('Git',)”的“索引”的反转。已尝试2种模式:['wiki/random/$','wiki/$'] 请求方法:获取 请求URL: 异常类型:NoReverseMatch 视图.pyPython Django-创建随机页面选择器,python,django,django-views,django-urls,cs50,Python,Django,Django Views,Django Urls,Cs50,我希望在主页上创建一个链接,当点击时,会随机将用户重定向到网站上5个入口页面中的1个(CSS、Django、Git、HTML、Python) 我看到其他人问了本质上相同的问题(),我试着按照这两个答案来回答,但现在当我点击我的随机页面链接时,我出现了一个错误: NoReverseMatch at/wiki/random/ 找不到参数为“('Git',)”的“索引”的反转。已尝试2种模式:['wiki/random/$','wiki/$'] 请求方法:获取 请求URL: 异常类型:NoRevers
from django.urls import reverse
from django.http import HttpResponseRedirect
from . import util
import random
def random_page (request):
entries = util.list_entries()
selected_page = random.choice(entries)
return HttpResponseRedirect (reverse('index', args=[selected_page]))
from django.urls import path
from . import views
urlpatterns = [
path("", views.index, name="index"),
path("css/", views.css, name="CSS"),
path("django/", views.django, name="Django"),
path("git/", views.git, name="Git"),
path("html/", views.html, name="HTML"),
path("python/", views.python, name="Python"),
path("createnew/", views.createnew, name="New_Entry"),
path("random/", views.random_page, name="index")
]
url.py
from django.urls import reverse
from django.http import HttpResponseRedirect
from . import util
import random
def random_page (request):
entries = util.list_entries()
selected_page = random.choice(entries)
return HttpResponseRedirect (reverse('index', args=[selected_page]))
from django.urls import path
from . import views
urlpatterns = [
path("", views.index, name="index"),
path("css/", views.css, name="CSS"),
path("django/", views.django, name="Django"),
path("git/", views.git, name="Git"),
path("html/", views.html, name="HTML"),
path("python/", views.python, name="Python"),
path("createnew/", views.createnew, name="New_Entry"),
path("random/", views.random_page, name="index")
]
layout.html
<div>
<a href="{% url 'index' %}">Random Page</a>
</div>
我有点担心主页和random_页面使用相同的名称“index”,但即使我将views.py中的名称更改为“random”,然后在layouts.html中更改名称,它仍然不起作用。浏览链接问题的答案,看起来你选错了——我不明白这是怎么回事。另一个答案更好,尽管URL的结构与您的有所不同。不清楚您的
list\u条目返回了什么,但在我看来,它应该只包含一个URL名称列表,然后您可以return HttpResponseRedirect(reverse(selected_page))
另外,您可能只需要path(“,views.page,name=“page”)
覆盖所有页面,而不是每页一页。否则,添加新页面将是一个挑战。