-1

我收到以下错误:view_page() takes exactly 2 arguments (1 given)

view.py 的代码是:

from wiki.models import Page
from django.shortcuts import render_to_response

def view_page(request, page_name):
   try:
         page = Page.objects.get(pk=page_name)
   except PageDoesNotExist:
         return render_to_response("create.html", {"page_name":page_name})

url.py 中给出的 url 是:

url(r'^wiki/$', 'wiki.views.view_page'),

但是,当我给出下面给出的 url 并删除上面的那个时,我得到了找不到页面的错误。

url(r'^wiki/(?P<page_name>[^/]+)/$','wiki.views.view_page'),
4

3 回答 3

1

这是因为 view_page() 的第二个参数是在 url 中传递的

例子

url(r'^wiki/(?P<page_name>[^/]+)/$','wiki.views.view_page')

something.com/wiki/2   #here 2 is the second parameter which is like

def view_page(request, 2)

如果你用这个

url(r'^wiki/$', 'wiki.views.view_page'),

something.com/wiki/  #The second parameter is not passed to the function
于 2012-08-29T10:08:59.047 回答
0

我认为您的查询集是错误的。如果您在 URL 中传递 page_name,那么它应该如下所示:

Page.objects.get(name=page_name)
于 2012-08-29T09:45:23.277 回答
0

也许第二个参数应该是可选的?

def view_page(request, page_name="Default value"):
于 2012-08-29T09:52:28.033 回答