2013-03-12 4 views
1

나는이 세 가지 기능을 가지고, 내가 그들을 정렬 한 내가 시도하고 show_checkout속성 오류는 어떻게 처리합니까?

에 에서 리디렉션 할 때 여기에 그들이

def show_order(request,id): 
    order = Order.objects.get(pk=id) 
    if request.method == 'POST': 
     postdata = request.POST.copy() 
     if postdata['submit'] == 'Remove': 
      order.remove_from_order(request) 
     if postdata['submit'] == 'Update': 
      order.update_order(request) 
     if postdata['submit'] == 'checkout': 
      """once confirmed order, click checkout and redirect to checkout_form""" 
      return HttpResponseRedirect(urlresolvers.reverse('checkout',kwargs={'id':order.id})) 
    .... 

def show_checkout(request,id): 
    if request.method == 'POST': 
     resto = Restaurant.objects.get(pk=id) 
     postdata = request.POST.copy() 
     form = forms.CheckoutForm(request.POST,postdata) 
     if form.is_valid(): 
      """create order after validating form""" 
      order_created = create_order(request,resto) 
      order_number = order_created.id 
      if order_number: 
       request.session['order_number'] = order_number 
      if postdata['submit'] == 'place order': 
       reciept_url = urlresolvers.reverse('checkout_reciept') 
       return HttpResponseRedirect(reciept_url) 
    ...... 

def create_order(request,obj): 
    """create new online_order containing each orderitem instance,save order and empty the order.""" 
    anon_user = User.objects.get(id=settings.ANONYMOUS_USER_ID) 
    resto = Restaurant.objects.get(pk=obj.id) 
    orders = Order() 

    checkout_form = forms.CheckoutForm(request.POST,instance=orders) 
    checkout = checkout_form.save(commit=False) 

    checkout.created_by = anon_user 
    checkout.modified_by = anon_user 
    checkout.restaurant = resto 
    checkout.status = Order.SUBMITTED 
    checkout.save() 

    if checkout.pk: 
     """if the order save suceeded""" 
     for ci in cart_items: 
      """create order for each order_item""" 
      ........ 

url(r'^your_order/(?P<id>\d+)/$',show_order,name="order_index"), 
url(r'^checkout/(?P<id>\d+)/$',show_checkout,name="checkout"), 

내가 AttributeError, 'Order' object has no attribute 'get_order_items'를 얻을 URL을 것을 멀리 등

일반적으로 내가하려는 것은 두보기 (show_checkout,)에 대한 디자인 URL이지만 작동하지 않습니다. 밖으로.

문제는 에서 변수 order=Order.objects.get(pk=id) 사이의 갈등과 내가 위의 코드에 포함하지 않았다 show_checkout에서 선 order.get_order_items(request)이었다. 그래서 변수 order을 에서 orders으로 변경했습니다. 그 모든 것을 고쳤습니다. 정직한 실수 ...

+0

이'get_order_items'는 어디에서 얻었습니까? 난 코드에서 찾으려고 – catherine

+0

그것의 예외 장고가 생성 ..하지만 코드 에서이 아니야 –

+2

당신은 또한 오류의 전체 추적을 게시 할 수 있습니까 – catherine

답변

1

문제는 show_order의 변수 order=Order.objects.get(pk=id)과 show_checkout의 코드 order.get_order_items(request) 사이의 충돌입니다. 위 코드에 포함되지 않았습니다. 그래서 나는 show_order의 변수 순서를 명령으로 바꿨다. 그 모든 것을 고쳤습니다. 정직한 실수.

관련 문제