DJANGO FORM - как изменить место сохранения загруженного файла
Я не использую форму моделей, а только форму. Как изменить расположение файла при загрузке? Я хочу, чтобы файл просто отправлялся в папку /mp3. И теперь я получаю ошибку :
UnboundLocalError at /
локальная переменная 'form' ссылается перед присвоением
и вот мой код :
def homepage(request):
if request.method == "POST":
form = Audio_store(request.POST, request.FILES)
# form = AudioForm(request.POST, request.FILES)
if form.is_valid():
handle_uploaded_file(request.FILES['record'])
return HttpResponseRedirect('mp3/')
return render(request, "homepage.html", {'form': form})
forms.py :
from django import forms
class Audio_store(forms.Form):
record=forms.FileField()
Здравствуйте, я видел ваш код и обнаружил, что он выдает ошибку ссылки перед присвоением, по моему опыту в django это происходит, когда он не может найти переменную, которую мы указываем как форму в вашем случае, и ваш код не работает, потому что:-
Вы только обрабатываете пост-запрос, а затем возвращаете метод рендеринга с некоторым контекстом
Ошибка возникает из-за того, что вы делаете GET запрос, как вы можете видеть метод запроса как GET и он также возвращает метод render, но с некоторым контекстом, который является формой и django не может найти форму, поэтому он выдает ошибку просто обработайте GET запрос также, ниже приведен код, который я думаю, чтобы решить ошибку:
.
код:
def homepage(request):
if request.method == "POST":
form = Audio_store(request.POST, request.FILES)
# form = AudioForm(request.POST, request.FILES)
if form.is_valid():
handle_uploaded_file(request.FILES['record'])
return HttpResponseRedirect('mp3/')
return render(request, "homepage.html", {'form': form})
else:
return render(request, "homepage.html")


