2011-07-17 32 views
0

傳遞參數時你好我得到在Django以下錯誤(最新版本):Django的類型錯誤通過URL

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)) 

回答

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) 

而且我懷疑它會工作好一點!

+0

嗯,是的,我把它作爲「id」之前,但是我一直在錯過從%s那部分的s,謝謝。 – jayduff

+0

看起來你最後忘了%s了?在你的原始文件中,你忘了它,所以也許你在嘗試上述時沒有改變它? –