Django通过URL传递参数时的TypeError
你好,我在使用Django(最新版本)时遇到了以下错误:
TypeError at /post/1/
post() got an unexpected keyword argument 'post_id'
这个错误发生在我点击主页上的一个链接,想查看具体的帖子时。我试图传递帖子的ID(我使用的是默认的[隐藏]主键,而不是我自己定义的主键)。
这是我urls.py文件中关于首页和帖子页面的设置:
from django.conf.urls.defaults import patterns, include, url
from journal.models import Post
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('journal.views',
(r'^$', 'index'),
(r'^post/(?P<id>\d+)/$', 'post'),
这是我的views.py文件:
from django.http import HttpResponse
from journal.models import Post
from django.template import Context, loader
import os
# Hardcoded Varibles
SITE_ROOT = os.path.join(os.path.dirname(__file__))
# Create your views here.
def index(request):
latest_post_list = Post.objects.all().order_by('-pub_date')[:10]
t = loader.get_template(os.path.join(SITE_ROOT, 'templates', 'index.html'))
c = Context({
'latest_post_list': latest_post_list,
})
return HttpResponse(t.render(c))
def post(request, id):
return HttpResponse("Hello this is post %" %(post_id))
1 个回答
2
把
def post(request, id):
return HttpResponse("Hello this is post %" %(post_id))
改成
def post(request, id):
return HttpResponse("Hello this is post %s" % id)
我觉得这样可能会更好用一点!