Django TypeError при передаче аргументов через URL - PullRequest
0 голосов
/ 17 июля 2011

Здравствуйте, я получаю следующую ошибку в Django (последняя версия):

TypeError at /post/1/
post() got an unexpected keyword argument 'post_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'),

Вот мои взгляды.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 голосов
/ 18 июля 2011

Изменение

def post(request, id):
    return HttpResponse("Hello this is post %" %(post_id))

до

def post(request, id):
    return HttpResponse("Hello this is post %s" % id)

И я подозреваю, что это будет работать немного лучше!

...