У меня есть приложение Django, в которое пользователи загружают изображения, а определенные функции используют путь к файлу изображения для их обработки и сохранения результата в той же модели.
все это происходит в представлении загрузки файлапроблема в том, что Мои функции берут путь к файлу, который еще не создан / не зафиксирован в БД, поскольку я не сохраняю их перед вызовом этих функций.
Я попытался переопределить метод сохранения в models.py
, и онне работает, так как я могу вызвать функции после загрузки удобным способом ??
вот функция:
# The view for analysing images
def upload_view(request,pk=None):
patient = get_object_or_404(Patient,pk=pk)
if request.method == 'POST':
form = forms.ImageForm(request.POST,request.FILES)
if form.is_valid():
image = form.save(commit=False)
image.patient = patient
image.enhanced = main(image.original.path)
image.segmented = segment(image.enhanced.path)
image.enhanced.name = image.enhanced.path.split('media')[1]
image.segmented.name = image.enhanced.path.split('media')[1]
messages.success(request,"Image added successfully!")
image.save()
return HttpResponseRedirect(reverse_lazy('patients:patient_detail', kwargs={'pk' : image.patient.pk}))
else:
form = forms.ImageForm()
return render(request, 'patients/upload.html', {'form': form})
else:
form = forms.ImageForm()
return render(request, 'patients/upload.html', {'form': form})
image.original
загруженное изображение
проблема в том, что путь к файлу не передан правильно, и функции возвращают ошибки из-за этого. (это работало, когда я выполнял обработку в другом представлении, к которому он был доступен после загрузки)