2017-12-05 17 views
1

아래 내용이 내 views.py.입니다. POST가 끝나면 사용자는 5 개의 항목이 표시된 성공 페이지를 표시합니다. 동시에 나는 environment을 사용자에게 보여주고 싶다. 그래서 나는 아래와 같이 (environment을 인자로 전달했다)했다. redirect이 발생하는 동안 나는 그걸 얻을 수없는 successenvironment과 일치하는 것을 찾으려고합니다. 아마도 이것을 처리하기 위해 올바른 정규식이 필요하고 이것을 처리하는 방법을 모르겠습니다.장고 렌더링에서 NoReverseMatch 오류가 발생했습니다.

def order_create(request): 
    cart = ItemObject.objects.all() 

    if request.method == 'POST': 
     ... 
      environment = envi_dict1.difference(item_dict1) 
      return HttpResponseRedirect(reverse('success', {'environment': environment})) 

    else: 
     form = ItemObjectCreateForm() 
    return render(request, 
        'index.html', 
        {'form': form}) 

def successView(request): 

    return render(request, 'success.html', {'items': ItemObject.objects.filter(gp_code='Unknown')[:5]}) 

는 urls.py

urlpatterns = [ 

    url(r'^admin/', admin.site.urls), 
    url(r'^export_action/', include("export_action.urls", namespace="export_action")), 
    url('^business-logic/', include('business_logic.urls')), 
    url('^index/', views.order_create), 
    url(r'^success/', views.successView, name='success') 
] 

내가 점점 오전 오류이

NoReverseMatch at /index/ 
Reverse for 'success' with keyword arguments '{u'environment': set([u'Test1'])}' not found. 1 pattern(s) tried: ['success/'] 
+2

해당 환경을 세션에 저장하고 성공 페이지에 표시 할 수 있습니다. –

+0

URL 이름과 함께 앱 이름을 전달해야 메소드를 바꿀 수 있습니다. 역순으로 말하면 ('YourAppName : success', kwargs = ..) – Ankush

+0

@SandeepBalagopal, 내가 말했듯이 세션을 사용했습니다. views.py 아래에 request.session [ 'environment'] = 환경이 있고 html에서는 request.session.environment를 사용합니다. –

답변

0

내가 세션 변수를 저장하기 Sandeep의 아이디어를 사용에 '/'제공되지 않습니다. views.py에서 request.session['environment'] = environment을 받았고 success.html을 사용했습니다. request.session.environment

0

이 가진 '/'성공

return HttpResponseRedirect(reverse('success/', {'environment': environment})) 

당신의 URL과 시도이다

url(r'^success/', views.successView, name='success') 

하지만, 리디렉션 URL