Este é um post de José Lopes.
Quando se faz o upload de imagens num projecto em Django é de esperar que elas possam ser visíveis quando se edita o registo associado na página de administração.
Este post mostra precisamente o se pode fazer, de uma forma simples, para mostrar as imagens quando se edita na administração um registo que as possua.
Basta copiar o ficheiro 'PATH para a directoria do Django'/django/contrib/admin/templates/widget/file.html para a directoria templates/widget do nosso projecto.
Estamos a utilizar o mesmo princípio que, por exemplo, se utiliza para personalizar as páginas de administração. Neste caso o template file.html define como são apresentados os campos de imagem na aplicação de administração.
O ficheiro original tem as seguintes linhas:
{% load admin_modify i18n %}{% if bound_field.original_value %} {% trans "Currently:" %} <a href="{{ bound_field.original_url }}" > {{ bound_field.original_value|escape }} </a><br /> {% trans "Change:" %}{% output_all bound_field.form_fields %} {% else %} {% output_all bound_field.form_fields %} {% endif %}
Podemos facilmente o modificar para incluir as imagens, por exemplo:
{% load admin_modify i18n %}{% if bound_field.original_value %} <img src="/site_media/{{ bound_field.original_url }}"> {% trans "Change:" %}{% output_all bound_field.form_fields %} {% else %} {% output_all bound_field.form_fields %} {% endif %}
Uma pequena nota, no path da imagem incluí site_media assumindo que o upload da imagem é realizado para aqui. Só para afirmar que temos de dar o caminho correcto para a imagem em sintonia com o nosso caso particular.
Por fim, de referir que sempre que alterar este ficheiro temos de correr o comando python manage.py runserver para poder visualizar as modificações.