Файл, загруженный в мою форму, не отображается в форме редактирования/обновления
Когда я заполняю форму своим файлом, она, очевидно, отправляется, но при проверке ее при редактировании/загрузке, все данные в форме отображаются, кроме моего файла. Таким образом, я вообще не могу получить к нему доступ. Я предполагаю, что это, вероятно, как-то связано с моим views.py (функция для обоих, сохранения формы в первый раз и визуализации их), так что вот он #views.py
def contract_form(request, id=0):
if request.method == "GET":
if id == 0:
form = ContractsForm(request.FILES)
else:
contratos = Contratos.objects.get(pk=id)
form = ContractsForm( instance=contratos)
return render(request,"contracts_form.html", {'form':form})
else:
if id == 0:
form = ContractsForm(request.POST, request.FILES)
else:
contratos = Contratos.objects.get(pk=id)
form = ContractsForm(request.POST, request.FILES, instance= contratos, )
if form.is_valid():
form.save()
messages.success(request, "Form submission successful")
else:
messages.error(request, "Error, contract not submitted")
return redirect('/contracts')
На всякий случай, все остальные случаи, имеющие отношение к загружаемому файлу:
#models.py
attached_file=models.FileField(upload_to="media", blank=True)
Моя форма указана с <form enctype="multipart/form-data" action="" method="post" autocomplete="off" class="row g-3">
#contracts_form.html
<label for="{{ form.subject.id_for_label }}">Attached File:</label>
{{form.attached_file}}
{% if Contracts.media %}
<a href="{{Contracts.media.url}}"></a>
{% endif %}
#settings.py
MEDIA_ROOT=os.path.join(BASE_DIR, 'uploads/')
MEDIA_URL="/contracts-media/"
path('contracts/edit/<int:id>', views.contract_form, name='edit'), #edit/update form
path('contracts/add', views.contract_form, name = 'new-contract'), #add a contract
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
````
В вашем теге ссылки нет текста
<a href="{{Contracts.media.url}}"></a>
Попробовать
<a href="{{Contracts.media.url}}">Wonderful Linkiness</a>