我有兩個觀點,我應該如何去了解一個TypeError()函數到底需要2個參數(1給出)
def create_order(request,id):
orders = Order()
orders.restaurant = Restaurant.objects.get(pk=id)
orders.save()
if orders.pk:
....
return orders
第二視圖調用第一個,
def show_checkout(request,id):
if order.is_empty(request):
...
if request.method == 'POST':
restaurant = Restaurant.objects.get(pk=id)
form = forms.CheckoutForm(request.POST,instance=restaurant)
if form.is_valid():
order_created = create_order(request,restaurant)
.......
return render_to_response('checkout/checkout.html',context,context_instance=RequestContext(request))
我當我運行此我得到的錯誤`
show_checkout()到底需要2個參數(1給出)` 我的回溯,
Traceback:
File "/home/matsinvasion/projects/f4l/env/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
Exception Type: TypeError at /orders/checkout/
Exception Value: show_checkout() takes exactly 2 arguments (1 given)
我去了解這一點,並在處理參數表明一個良好的閱讀理解
from .views import show_item, show_order,get_category,homepage,show_checkout,reciept
from f4l import settings
from django.conf.urls.defaults import patterns, include, url
urlpatterns = patterns('',
url(r'^$',homepage,name="homepage"),
url(r'^menu/(\d+)$',get_category, name="f4l_menu"),
url(r'^your_order/$',show_order,name="order_index"),
url(r'^item/(?P<id>\w+)/$',show_item, name="item_order"),
url(r'^checkout/$',show_checkout,name="checkout"),
url(r'^reciept/$',reciept,name="checkout_reciept"),
)
固定urls.py,提出了在這個函數NoReverseMatch error
,
Reverse for 'checkout' with arguments '()' and keyword arguments '{}' not found.
def get_checkout_url(request):
return urlresolvers.reverse('checkout')
你可以發表你的'urls.py'? – 2013-03-07 21:04:53
@ TimmyO'Mahony我剛剛做到了。 – 2013-03-07 21:14:33