1
How do I display only the file name, example RET_PREF_ANAPOLIS..., removing the path arquivos/
?
py.models:
def user_directory_path(instance, filename):
if instance.tipo_arquivo.id == 1:
tipo = 'RET'
elif instance.tipo_arquivo.id == 2:
tipo = 'REM'
filename = '%s_%s_%s' % (tipo, instance.empresa.nome_empresa, filename)
return os.path.join('arquivos', filename)
class Documento(models.Model):
arquivo = models.FileField(upload_to=user_directory_path)
tipo_arquivo = models.ForeignKey('TipoArquivo', on_delete=models.CASCADE)
empresa = models.ForeignKey('Empresa', on_delete=models.CASCADE)
data_upload = models.DateTimeField(auto_now=True)
def __str__(self):
return self.arquivo
py views.
class UploadArquivo(CreateView):
model = Documento
fields = ['arquivo', 'tipo_arquivo', 'empresa']
template_name = 'upload_arquivo.html'
success_url = reverse_lazy('lista_empresa')
class ListaArquivo(ListView):
model = Documento
fields = ['arquivo', 'tipo_arquivo', 'empresa']
template_name = 'lista_arquivo.html'
view upload_html file.
<form method="post" enctype="multipart/form-data">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Enviar">
</form>
view list_file.html
<h1>Arquivos</h1>
<table border="1">
<thead>
<th>Arquivo</th>
<th>Tipo</th>
<th>Empresa</th>
<th>Download</th>
</thead>
<tbody>
{% for documento in object_list %}
<tr>
<td>{{ documento.arquivo }}</td>
<td>{{ documento.tipo_arquivo }}</td>
<td>{{ documento.empresa }}</td>
<td><a href="{{ documento.arquivo.url }}" download="">Download</a></td>
</tr>
{% endfor %}
</tbody>
</table>
Thank you! It worked!
– Matheus Massa