Попробуйте
def form_get(request):
# if this is a POST request we need to process the form data
if request.method == 'POST':
# create a form instance and populate it with data from the request:
form = FileForm(request.POST)
# check whether it's valid:
if form.is_valid():
pass
else:
form = FileForm()
return render(request, 'main/index.html', {'form': form})
Посмотрите, как я изменил контекст рендеринга с {'form': FileForm.form}
на {'form': form}
. Путь к файлу index.html также был неверным.
После исправления представления вам необходимо добавить фактический URL, чтобы перейти к нему. Ваш текущий URL имеет
url(r'^$', views.index, name='home'),
Обратите внимание, как используется views.index
, а не views.form_get
. Измените URL на form_get
, и он будет работать.
url(r'^$', views.form_get, name='home'),
Не знаю, хотите ли вы, чтобы /
отправлялся в форму, или вы бы предпочли, чтобы /
все еще шел домой, где у вас есть ссылка на форму. Но в этом случае вы не хотите предоставлять общий доступ к одному и тому же файлу index.html
.
Но, похоже, вы пытаетесь объединить эти два, но в этом случае вам нужно одно представление, которое может как отображать содержимое файла, так и запрашивать файл. Но будет проще, если у вас есть два представления, и оставьте форму, чтобы просто принять ввод, а затем перенаправьте во второе представление, чтобы показать результаты.