単純なフォームのPOSTに問題があります。これが私のurl.pyです:
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^', 'fileupload.views.show_template'),
url(r'^upload_file/', 'fileupload.views.upload_file'),
)
これが私のform.htmlです:
form action="/upload_file/" method="post">
{% csrf_token %}
<fieldset>
<legend>Session</legend>
<label for="input-one" class="float"><strong>Session Name:</strong></label><br />
<input class="inp-text" name="input-one-name" id="session" type="text" size="30" /><br />
<label for="input-two" class="float"><strong>Source:</strong></label><br />
<input class="inp-text" name="input-two-name" id="source" type="text" size="30" />
<label for="input-two" class="float"><strong>Destination:</strong></label><br />
<input class="inp-text" name="input-two-name" id="destination" type="text" size="30" />
</fieldset>
<p><input class="submit-button" type="submit" alt="SUBMIT" name="Submit" value="Save" /></p>
<p><input class="cancel-button" type="reset" name="Save" value="Cancel" /></p>
</form>
これが私のviews.pyです:
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
from fileupload.forms import UploadFileForm
from django.template import RequestContext
def show_template(request):
return render_to_response('form.html', {'form': 'form'}, context_instance=RequestContext(request))
def upload_file(request):
if request.method == 'POST':
form = UploadFileForm(request.POST)
if form.is_valid():
sessiong = form.cleaned_data['session']
sourceg = form.cleaned_data['source']
destinationg = form.cleaned_data['destination']
return HttpResponseRedirect('/thanks/')
else:
form = UploadFileForm()
return render_to_response('form.html', {'form': form}, context_instance=RequestContext(request))
問題は、フォームに入力して[保存]をクリックすると、フォームがまったく処理されないことです。これは、ビューのupload_fileがまったく機能していないことを意味します。何が問題なのでしょう?単純なロジックは次のとおりです。ユーザーがフォームに入力し、[保存]をクリックすると、データはPython変数に保存され、後でデータベースに保存する予定です。