Другая причина может быть при использовании автоматизации, некоторое несоответствие младшей версии Office:
У меня есть устаревшее приложение VB5 + Access (которое я переписываю в Delphi и заменяю всю автоматизацию путаница с чистой генерацией OpenDocument), которая работала хорошо в некоторых системах и приводила к ошибке в других.
Эта ошибка возникла бы при создании электронной таблицы Excel и казалась безвредной (за исключением раздражения и, поскольку в десятки раз больше риска нажатия пользователем «Abort» в середине), как будто всегда нажимая «Ignore», все работало как ожидается.
В конце концов я обнаружил, что причина была в установке Office 97:
Ошибка отобразилась бы, если бы последовательность установки Office 97 была:
, но не в том случае, если он был установлен вместе с:
Выполнение удаления / переустановки с настройкой SR1 на затронутых системах решило проблему.
Ваше представление с формой должно выглядеть примерно так:
def add(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
# do stuff & add to database
my_file = FileField.objects.create()
# use my_file.pk or whatever attribute of FileField your id is based on
return HttpResponseRedirect('/files/%i/' % my_file.pk)
else:
form = UploadFileForm()
return render_to_response('upload_file.html', {
'form': form,
})
У вас есть аргументы для обратного
неверного в
return HttpResponseRedirect(reverse('/file/', args=[my_file.id]))
обратного
принимает представление или имя или представление, а не URL.
Вы не говорите, что ваш Функция view вызывается для просмотра файла, но, допустим, она называется view
, тогда приведенное выше должно быть
return HttpResponseRedirect(reverse('view', args=[my_file.id]))
или, возможно,
return HttpResponseRedirect(reverse(view, args=[my_file.id]))
В зависимости от того, что вы написали в urls.py
Вы можно назвать представления в urls.py
и использовать эти имена вместо имен функций - см. дополнительные примеры в документации
Использование реверса - хорошая идея, если вам нравится перетасовать ваш urls.py
вокруг - вы сможете изменить любой из путей, и все ваши представления будут продолжать работать.