Grundsätzlich versuche ich derzeit, die Tatsache zu umgehen, dass Sie eine HttpResponseRedirect nach der Formularübermittlung tun müssen, um wiederholte Eingaben bei der Seitenaktualisierung zu vermeiden.Formularaktion wird überhaupt nicht ausgelöst
So möchte ich meine Schaltfläche senden für mein Formular eine andere Ansicht auslösen, nicht die aktuelle Ansicht senden. Hier ist mein html ist: (Ich habe die Form herausgenommen, weil es viele Code ist die Tabelle horizontal zu machen)
<form id= "time-form" method = 'POST' action='' class="dynamic-form" enctype="multipart/form-data">{% csrf_token %}
<div id="formset-container" class = "formset-container">
<table>
<--form is in here-->
</table>
<ul>{{ newtime_formset.errors }}</ul>
</div>
</br>
<div>
<input type = "submit" id = "save" action="{% url 'tande:create_time' %}" value = "Save Timesheet">
</div>
Deshalb möchte ich die Submit-Button die create_time Ansicht auszuführen. Wir sind derzeit in einer Ansicht namens Arbeitszeittabelle. Die Create_time-Ansicht wird jedoch nicht angezeigt, sondern bleibt nur in der aktuellen Ansicht.
def create_time(request):
#below isn't printing
print "create_time view"
#save the form in here
return HttpResponseRedirect('timesheet')
und die URL für beide Ansicht:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^(?P<timesheet_id>[0-9]+)/person/timesheet/$', views.timesheet, name='timesheet'),
url(r'^create_time/$', views.create_time, name='create_time'),
]
So möchte ich die Zeiterfassungs in create_time speichern und dann zu Zeiterfassungs zurück Umleitung zu vermeiden .... Ich denke, das macht Sinn .. ..: S
Dank
Ein weiteres Problem django, erhalte ich timesheet_id globalen Namen nicht definiert ist. Also habe ich 'kwargs = {" timesheet_id ": timesheet_object}' versucht, was der ID-Wert ist und NoReverseMatch .... ** Reverse für 'timesheet' mit Argumenten '()' und Schlüsselwortargumenten '{' timesheet_id ': u '34'} 'nicht gefunden. 0 Muster (s) versucht: [] ** –
Das ist eine Konvention, Sie müssen es durch eine Variable ersetzen, die die Zeiterfassungs-ID enthält. Sollte ID des Objekts sein, dass Sie in der Form Post allgemein –
Oh ich sehe! in der obigen '34' ist meine Timesheet-ID ... Ich brauche das in der URL .. –