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()

и мое сообщение об ошибке : error web error terminal

моя папка: folder

Здравствуйте, я видел ваш код и обнаружил, что он выдает ошибку ссылки перед присвоением, по моему опыту в django это происходит, когда он не может найти переменную, которую мы указываем как форму в вашем случае, и ваш код не работает, потому что:-

  1. Вы только обрабатываете пост-запрос, а затем возвращаете метод рендеринга с некоторым контекстом

  2. Ошибка возникает из-за того, что вы делаете 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")
Вернуться на верх