मैं इस के साथ घंटों के लिए सर्कल में चारों ओर जा रहा हूं।
मेरे पास प्रोफाइल_pic ImageField के साथ एक UserProfile मॉडल है। मैंने उपयोगकर्ता फोटो को सहेजा और अब मैं इसे प्रदर्शित करना चाहता हूं, लेकिन कुछ भी काम नहीं करता है। मैं डॉक्स, एसओ, गूगल के माध्यम से कोई परिणाम नहीं मिला।
मैंने एक फोटो अपलोड किया है, और मैं देख सकता हूं कि यूआरएल डेटाबेस में सहेजा गया था। यह है कि मैं क्या है:Django - मैं 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 %}
जब मैं प्रदान की गई HTML के स्रोत को देखते हैं, सब मैं देख MEDIA_URL (यानी 'मीडिया /'), लेकिन तस्वीर url नहीं है। यदि मैं {{field.url}} को {{field}} के साथ प्रतिस्थापित करता हूं, तो मुझे "वर्तमान में" लेबल, "साफ़ करें" चेकबॉक्स और छवि बदलने के लिए एक विकल्प वाला यूआरएल मिलता है। लेकिन मैं खुद छवि को नहीं देख सकता।
क्या कोई सुझाव दे सकता है कि मैं क्या गलत कर रहा हूं?
@Crhis, जवाब के लिए धन्यवाद:
get_type एक templatetag रूप में परिभाषित किया है। हालांकि, यह अभी भी काम नहीं कर रहा है। अब Django "मीडिया/प्रोफाइल_पीआईसी" प्रस्तुत करता है (फ़ील्ड नाम, वास्तविक छवि फ़ाइल नाम और पथ नहीं) – user1102018
ऊपर अपडेट देखें। –
फिर से धन्यवाद। यह अब काम करता है! मेरी इच्छा है कि रैपर के बारे में कुछ गहन दस्तावेज थे। इससे मुझे यह पता लगाने की कोशिश की गई कि मैं क्या गलत कर रहा था। चीयर्स! – user1102018