Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-创建随机页面选择器_Python_Django_Django Views_Django Urls_Cs50 - Fatal编程技术网

Python Django-创建随机页面选择器

Python 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

我希望在主页上创建一个链接,当点击时,会随机将用户重定向到网站上5个入口页面中的1个(CSS、Django、Git、HTML、Python)

我看到其他人问了本质上相同的问题(),我试着按照这两个答案来回答,但现在当我点击我的随机页面链接时,我出现了一个错误:

NoReverseMatch at/wiki/random/ 找不到参数为“('Git',)”的“索引”的反转。已尝试2种模式:['wiki/random/$','wiki/$'] 请求方法:获取 请求URL: 异常类型:NoReverseMatch

视图.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")
]
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”)
覆盖所有页面,而不是每页一页。否则,添加新页面将是一个挑战。