2016-12-07 2 views
0

Ich möchte ein bestimmtes URL-Muster von Django Views aufrufen. Der Aufruf sollte innerhalb der ersten IF-Bedingung und außerhalb der inneren if sein. Ist die Funktion any, die Umleitung bietet? Oder etwas wie redirect (map_vertical_crawl)? Der Codeabschnitt für Django Aufrufe:So rufen Sie eine bestimmte URL aus Django-Ansichten auf?

def add_vertical(request): 

    if request.method == 'POST': 

     form = VerticalForm(request.POST) 

     if form.is_valid(): 
      form.save() 

     #I WANT TO CALL URL EXACTLY AT THIS POINT, INSIDE OUTER IF. 

    verticals = Verticals.objects.all() 

    return render(request, 'cfman/add_vertical.html', 
        {'form': VerticalForm(), 
        'verticals': verticals} 
       ) 

Django URLS:

from django.conf.urls import url 
from . import views, apps 

urlpatterns = [ 

    #Generates Login Screen 
    url(r'^$', views.LoginView.as_view(), name="login"), 

    #Directs to manager view level 1 
    url(r'^manager/$', views.verticals_view, name="manager"), 

    #Directs to manager view level 2 
    url(r'^manager/(?P<verticalid>\d+)/$', views.source_list, name='source_list'), 

    #Add Vertical 
    url(r'^verticals/add_vertical/$', views.add_vertical, name="add_vertical"), 

    #Add Source 
    url(r'^sources/add_source/$', views.add_source, name="add_source"), 

    #Add Crawl Type 
    url(r'^crawls/add_crawl/$', views.add_crawl, name="add_crawl"), 

    #Map verticals and crawl types 
    url(r'^vertical_crawl/$', views.map_vertical_crawl, name="map_vertical_crawl"), 


] 

Ich möchte die letzte URL-Muster nennen, 'map_vertical_crawl' von Ansichten.

+0

Der Programmablauf korrekt ist. Das eigentliche Problem, mit dem ich konfrontiert bin, ist, wenn ich auf "Senden" -Button klicke, es tut nur POST, nach dem Post, ich möchte es umleiten. –

Antwort

1

Djangos integrierten in redirect() einen Ansichtsnamen als Parameter akzeptiert, so einfach tun:

redirect('cfman:map_vertical_crawl') 
+0

Ich möchte ein bestimmtes URL-Muster namens map_vertical_crawl aufrufen –

+0

Ich denke, Umleitung wird auf ** Ansichten verwendet, um Funktionen ** selbst zu sehen. Ich möchte ein URL-Muster anrufen. –

+0

@ OmkarDeshpande Got es. Die Antwort wurde entsprechend aktualisiert. – lucasnadalutti

Verwandte Themen