Допустим, пользователь не может найти папку на компьютере, поэтому проще управлять файлами папки на веб-странице.Мне удается показать файл папки документов на веб-странице / Вот эта веб-страница /, затем я пытаюсь загрузить или удалить нужный документ, но я получаю некоторые ошибки.
Я пытаюсь использоватьos.path.exists () и os.remove (), чтобы удалить документ, но, насколько я понимаю, я не создаю свой шаблон URL-адресов правильно и не передаю правильный аргумент моему HTML-шаблону.
Здесьмой код:
urls.py:
....
path('edited_agreements/', views.delete_new_file, name='delete_new_file'),
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
views.py
def new_files_list(request):
path = MEDIA_ROOT
new_files_list = []
for file in os.listdir(path):
if file.endswith('.doc') or file.endswith('.docx'):
new_files_list.append(file)
return render(request, 'uploads/new_files_list.html', {
'new_files': new_files_list
})
def delete_new_file(request, path):
if request.method == 'POST':
file_path = os.path.join(MEDIA_ROOT, path)
if os.path.exists(file_path):
os.remove(file_path)
return redirect('new_files_list')
.html
....
<tbody>
{% for new_file in new_files %}
<tr>
<td>{{ new_file }}</td>
<td>
<form method="post" action="{{ new_file.path }}" target="_blank">
{% csrf_token %}
<button type="submit" class="btn btn-danger btn-sm">Download</button>
</form>
</td>
<td>
<form method="post" action="{{ new_file }}">
{% csrf_token %}
<button type="submit" class="btn btn-danger btn-sm">Delete</button>
</form>
</td>
</tr>
{% endfor %}
</tbody>
....
Когда я нажимаю наудалить Я хочу, чтобы файл был удален с моей веб-страницы и из папки, а когда я хочу скачать, файл должен быть загружен.Теперь я получаю следующую ошибку:
The current path, edited_agreements/222222.docx, didn't match any of these.