У меня есть модель в Django, в которой объект может иметь несколько загруженных файлов:
из django.db импортировать модели из model_utils.models импортировать TimeStampedModel из .managers импортировать ProviderManager
class Provider(TimeStampedModel):
full_name = models.CharField('Nombre', max_length=100, unique=True)
phone1 = models.CharField("Teléfono", max_length=50, blank=True, null=True)
phone2 = models.CharField("Teléfono", max_length=50, blank=True, null=True)
email1 = models.EmailField("Email", max_length=100,
blank=True, null=True)
email2 = models.EmailField("Email", max_length=100,
blank=True, null=True)
bank_info = models.TextField(
"Info Banco", max_length=250, blank=True, null=True)
objects = ProviderManager()
class Meta:
verbose_name = "Proveedor"
verbose_name_plural = "Proveedores"
ordering = ["full_name"]
def __str__(self):
return "Nombre: "+self.full_name
def get_provider_files_names(self):
provider_files = self.provider_files.all()
file_list = []
for f in provider_files:
# print(f.file.name.split('/')[-1])
file_list.append(f.file.name.split('/')[-1])
return file_list
def get_provider_files_urls(self):
provider_files = self.provider_files.all()
file_list = []
for f in provider_files:
file_list.append(f.file.url)
return file_list
class ProviderFiles(TimeStampedModel):
file = models.FileField(upload_to="provider_files/%Y/%m/%d")
provider = models.ForeignKey(
Provider, on_delete=models.CASCADE, related_name='provider_files')
class Meta:
verbose_name = "Archivos Proveedor"
verbose_name_plural = "Archivos Proveedores"
def __str__(self):
return "Nombre Proveedor: "+self.provider.full_name
Итак, в моем html я хотел бы получить доступ к файлам сущностей и предоставить пользователям ссылки для загрузки этих файлов:
<td>
<a href="{{ provider.get_provider_files_urls.0 }}" download="{{ provider.get_provider_files_urls.0 }}"> Download File</a>
</td>
Итак, когда начинается загрузка, происходит сбой с ошибкой Failed - No file (файл существует)
Также важно, если я получаю доступ к администратору, проверяю загруженные файлы и открываю их, страница говорит, что не найдена
http://localhost:8000/media/provider_files/2021/02/24/Catalogo_2021_R0oiQHD.png
/2021/02/24
преднамеренной в URL-адресе, так как я думаю, что косая черта даты в URL-адресе может быть неправильно интерпретирована django. Я предлагаю вам попробовать удалить это из URL-адресов СМИ. - person Hemant Malik   schedule 04.03.2021