Загрузка файла Django: перенаправления просмотра продолжают возвращать ошибки - PullRequest
0 голосов
/ 15 октября 2019

Я работал над этим музыкальным сайтом в Джанго, в основном просто пытаясь заставить работать представление загрузки. Когда вы загружаете музыкальный файл, я хочу, чтобы он перенаправлял на страницу результатов. У меня были реальные проблемы с попыткой заставить работать редирект, и он должен быть очень простым, но просто не работал. Любая помощь будет принята с благодарностью! Моя ошибка:

ValueError в / uploads / home / Представление uploads.views.upload не возвращало объект HttpResponse. Вместо этого он вернул None.

uploads / views.py (соответствующий код ошибки):

def upload(request):
    if request.method == 'POST':
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return redirect('uploads:results')

        else:
            form = UploadFileForm()
        return render(request, 'uploads/upload.html', {'form': form})

uploads / urls.py

from django.urls import path

from . import views

    app_name = 'uploads'

    urlpatterns = [
        path('home/', views.upload, name='index'),
        path('<int:audiofile_id>/results/', views.ResultsView.as_view(), name='results'),
    ]

upload. html (шаблон загрузки)

{% extends 'uploads/base.html' %}

{% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}
{% block content %}
<div class="container">
    <div class="row">
        <div class="col-lg-12 col-md-8">
            {% for audiofile in audiofiles %}
              <h1>{{ audiofile.title }}</h1>




        </div>
        </div>
        <div class="row">

        <div class="col-lg-12 col-md-8">
      <form action="{% url 'uploads:results' audiofile_id %}" method="post" name = "form" enctype = "multipart/form-data">
        {% csrf_token %}
        {{ form }}
        <input type="submit" value="Submit">
        </form>
            {% endfor %}
        </div>
        </div>

        <!--<div class="row">-->
        <!--    <div class="col-lg-8">-->
        <!--<img src="{% static "uploads/loveLogo.jpg" %}" alt="lovelogo" class="img-fluid">-->
        <!-- </div>-->
        <!-- </div>-->
         </div>

 {% endblock %}

1 Ответ

0 голосов
/ 15 октября 2019

вы пытаетесь перенаправить на URL results, но этот URL-адрес также принимает audiofile_id в качестве параметра, который вы не передали при перенаправлении, поэтому вам нужно изменить свое представление следующим образом:

   if form.is_valid():
        file = form.save()
        return redirect('uploads:results',file.audiofile_id)
...