Sto girovagando per ore con questo.
Ho un modello UserProfile con profile_pic ImageField. Ho salvato la foto dell'utente e ora voglio visualizzarla, ma niente funziona. Ho passato documenti, SO, google, senza risultati.
Ho caricato una foto e posso vedere che l'URL è stato salvato nel database. Questo è quello che ho:Django - Come posso visualizzare una foto salvata in ImageField?
# models.py
class UserProfile(models.Model):
...
title = models.CharField()
about_me = models.CharField()
profile_pic = models.ImageField(upload_to=content_file_name, blank=True)
# views.py
def user_details(request):
if request.method == 'POST':
form = UserProfileForm(request.POST, request.FILES, instance=request.user.get_profile())
if form.is_valid():
form.save()
return HttpResponseRedirect('/')
else:
form = UserProfileForm(instance=request.user.get_profile())
return render_to_response('user_details.html',
{'user': request.user, 'form': form},
context_instance=RequestContext(request))
# user_details.html
{% for field in form %}
{% if field.name != "profile_pic" %}
<!-- display regular fields -->
{{ field.label_tag }}{{ field }}
{% else %}
<!-- display the user photo -->
<img src="{{ MEDIA_URL }}{{ field.url }}" />
{% endif %}
{% endfor %}
Quando osservo la fonte del rendering HTML, tutto quello che vedo è il MEDIA_URL (vale a dire 'media /'), ma non la foto URL. Se sostituisco {{field.url}} con {{field}} ottengo l'url con l'etichetta "Attualmente", una casella di controllo "Cancella" e un'opzione per cambiare l'immagine. Ma non riesco a vedere l'immagine stessa.
Qualcuno può suggerire cosa sto sbagliando?
@Crhis, grazie per la risposta. Tuttavia, questo non funziona ancora. Ora Django rende "media/profile_pic" (il nome del campo, non l'immagine reale nome file e percorso) – user1102018
Vedere l'aggiornamento sopra. –
grazie ancora. Ora funziona! Vorrei che ci fossero alcuni documenti approfonditi riguardanti l'involucro. Questo mi avrebbe risparmiato ore per cercare di capire cosa stavo facendo male. Saluti! – user1102018