照片未显示在django html中



我花了几个小时试图弄清楚发生了什么,但我不明白为什么照片没有显示在我的html文件中。

目标:显示每个用户的个人资料照片问题:照片未显示在django html 中

detail.html

<div class="col-sx-1 col-sm-5 text-right">
<a href="{% url 'contacts:detail' contact.id %}">
{% if contact.photo %}
<img src="/{{ contact.photo.url }}" class="img-responsive">
{% else %}
<h3>No image to display</h3>
{% endif %}
</a>                        
</div>

视图.py

def create_contact(request):
form = ContactForm(request.POST or None, request.FILES or None)
if form.is_valid():
contact = form.save(commit=False)
contact.user = request.user
contact.photo = request.FILES['photo']
file_type = contact.photo.url.split('.')[-1]
file_type = file_type.lower()
if file_type not in IMAGE_FILE_TYPES:
context = {
'contact': contact,
'form': form,
'error_message': 'Image file must be PNG, JPG, or JPEG',
}
return render(request, 'contacts/create_contact.html', context)
contact.save()
return render(request, 'contacts/detail.html', {'contact': contact})
context = {
'form': form,
}
return render(request, 'contacts/create_contact.html', context)

urls.py

urlpatterns = [...]
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

型号.py

class Contact(models.Model):
photo = models.ImageField(upload_to='profileimage', blank = True)

设置.py

STATIC_URL = '/static/'
MEDIA_URL = '/media/'
MEDIA_ROOT =  os.path.join(BASE_DIR, 'media')

非常感谢,

我通过将static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)添加到主urls.py文件中解决了这个问题。我希望这能有所帮助。

最新更新