-1

/ item / 3 / Sell_offer /4/
にaction="add_post/"のフォームがあります

/ item / 3 / Sell_offer / 4/add_postに行くと思います

関連するurlpatternsは

(r'^item/(?P<item_id>\d+)/sell_offer/(?P<sell_offer_id>\d+)/$', views.sell_offer_page),
(r'^item/(?P<item_id>\d+)/sell_offer/(?P<sell_offer_id>\d+)/add_post/$', views.sell_offer_add_post),

ビューは次のようになります。

def sell_offer_add_post(request, item_id, sell_offer_id):
    p = request.POST

    if p.has_key("body") and p["body"]:
        post = SellOfferPost(sell_offer=SellOfferPost.objects.get(pk=sell_offer_id))
        form = SellOfferPostForm(p, instance=post)
        post = form.save()
        post.save()

    return HttpResponseRedirect(reverse('views.sell_offer_page', args=[item_id, sell_offer_id]))

ポストアクションは、実際にはビューへの道を見つけられないと思います。
以下はエラーメッセージです

Request Method: POST
Request URL:    http://......:8000/item/1/sell_offer/4/add_post/
Django Version: 1.3.1
Exception Type: TypeError
Exception Value:    
sell_offer_add_post() got an unexpected keyword argument 'item_id'
Exception Location: /usr/local/lib/python2.6/dist-packages/Django-1.3.1-py2.6.egg/django/core/handlers/base.py in get_response, line 111

私はここで何が間違っているのですか?

4

2 に答える 2

0

sell_offer_add_post()他のビューをさらに下に呼び出していないことを確認してください。

于 2012-04-28T05:12:10.367 に答える
0

ビューの署名を次のように設定してみてください。

def sell_offer_add_post(request, item_id=None, sell_offer_id=None):

私はテストしていませんが、覚えていれば、URLで名前付きキャプチャグループを使用すると、djangoは名前付きキーワードを渡そうとします。ビューの値を確認する必要があります。

于 2012-04-28T16:18:29.570 に答える