Django выдает ошибку "Reverse for 'view' not found", когда представление определено
При использовании django 4.0.4 я столкнулся с ошибкой "Reverse for 'upload' not found. 'upload' is not a valid view function or pattern name". Ранее это работало, и я не могу понять, в чем проблема. Я привожу свои views.py, urls.py и соответствующий раздел html-файла, все три находятся в одной папке проекта. Если у кого-нибудь есть совет, я буду очень признателен.
Views.py
def welcome(request):
return render(request, 'welcome.html')
def contact(request):
return render(request, 'contact-us.html')
def how(request):
return render(request, 'How-to-use.html')
def upload(request):
if request.method == 'POST':
if 'scatter_plot' in request.POST:
form = UploadFileForm(request.POST.get, request.FILES)
file=request.FILES['document']
csv = CSV.objects.create(doc=file)
os.system('python ../scatter_plot.py')
if 'line_plot' in request.POST:
form = UploadFileForm(request.POST.get, request.FILES)
file=request.FILES['document']
csv = CSV.objects.create(doc=file)
os.system('python ../line_plot.py')
return render(request, 'uploaded.html')
else:
form = UploadFileForm
Urls.py
urlpatterns = [
path('', views.welcome),
path('admin/', admin.site.urls),
path('contact-us/', views.contact),
path('upload.html', views.upload),
path('upload/', views.upload),
path('welcome/', views.welcome),
path('How-to-use/', views.how),
path('contact-us.html', views.contact),
path('welcome.html', views.welcome),
path('How-to-use.html', views.how)
]
Welcome.html
<form method="POST" enctype="multipart/form-data" action="{% url 'upload' %}">
{% csrf_token %}
<input type='file' name='document' accept='.csv'>
<button type='submit' name='line_plot'>Graph as a line Graph</button>
<button type='submit' name='scatter_plot'>Graph as a Scatter Plot</button>
</form>
необходимо указать имя для URL
path('upload/', views.upload, name='upload'),
Обратитесь к этому
https://docs.djangoproject.com/en/4.0/topics/http/urls/#reversing-namespaced-urls https://docs.djangoproject.com/en/4.0/topics/http/urls/