2016-03-26 13 views
0

In dem folgenden Code, die senden Schaltfläche in der Vorlage klicken leitet den Browser zu „localhost: 8000/new/Regisseur“, die kein anerkannte URL-Muster ist. Der Code in meiner Sicht initiiert die Umleitung nicht.Fehlerhafte Umleitung auf Klick auf Submit-Button

Vorlage

<div class="col-md-8" style="margin-top: 51px; padding: 0px;"> 
    <p style="font-size: 30px; margin-left: 0px; padding-left: 50px; padding-top: 5px; padding-bottom: 5px; border-bottom: 2px Solid #BEBEBE; width: 100%;"><font color="#9E9E9E">Subject: Circular</font></p> 

    <form method="post" action="."> 
    <div class="form-group" style="width: 500px; margin-left: 150px; margin-top: 50px;"> 
    <label for="Regarding">Regarding</label> 
     {{ form.regarding }} 
    </div> 
    </br> 
    <div class="form-group" style="width: 500px; margin-left: 150px;"> 
    <label for="Content">Content</label> 
     {{ form.content }} 
    </div> 
    <div class="form-group" style="margin-left: 150px; margin-top: 20px;"> 
    <button type="submit" class="btn btn-default"><font color="#333">Send</font></button> 
    </div> 
    </form> 
</div> 

Ansicht

def new_circular_director(request): 
    template = get_template('new_circular_director.html') 

    if User.is_authenticated: 
     username = request.user.username 
    else: 
     return HttpResponseRedirect('/login_board') 

    if request.method == 'POST': 
     form = new_circularForm(request.POST) 

     now = datetime.datetime.now() 

     if form.is_valid(): 
      user = User.objects.get(username = username) 
      mem = memo(
       snd_username = user, 
       rcv_username = form.cleaned_data['rcv_username'], 
       subject = form.cleaned_data['subject'], 
       date = str(now.year) + '-' + str(now.month) + '-' + str(now.day), 
       time = str(now.hour) + ':' + str(now.minute), 
      ) 

      mem.save() 

      mee = mem.circular_set.create(
       snd_username = username, 
       rcv_username = mem.rcv_username, 
       content = form.cleaned_data['content'] 
      ) 

      mee.save() 

      return HttpResponseRedirect('/dashboard/director/' + username) 

    else: 
     form = new_circularForm() 


    variables = RequestContext(request, { 
     'form': form, 
    }) 
    return render_to_response('new_circular_director.html', variables) 

URL

url(r'^new/director/circular', new_circular_director), 

Fo rm

class new_circularForm(forms.Form): 
    reciever = forms.CharField(
     label='Reciever', 
     widget=forms.TextInput(attrs={'placeholder': 'Emp ID', 'class': 'form-control'}), 
    ) 

    content = forms.CharField(
     label='Content', 
     widget=forms.Textarea(attrs={'class': 'form-control'}), 
    ) 

    regarding = forms.CharField(
     label='Regarding', 
     widget=forms.TextInput(attrs={'placeholder': 'Subject of the Circular', 'class': 'form-control'}), 
    ) 

Warum ist die Umleitung auftritt?

Antwort

1

Das ist was . bedeutet als eine Aktion: Gehen Sie zum Stammverzeichnis des aktuellen Verzeichnisses. Da Sie Ihren Pfad nicht mit einem Schrägstrich beendet haben, interpretiert der Browser action="." als Anweisung, zu "/ new/director /" zu wechseln.

Die Lösung ist einfach: Stellen Sie sicher, dass Ihre URL "^new/director/circular/$" ist.

+0

Dumm ich: | Danke: D –