Я потратил несколько часов, пытаясь выяснить, что происходит, но не могу понять, почему фотография не отображается в моем html файле.
Цель: Показать фотография профиля каждого пользователя Проблема: Фотография не отображается в django html
детали. 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>
views.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)
models.py
class Contact(models.Model):
photo = models.ImageField(upload_to='profileimage', blank = True)
settings.py
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
Большое спасибо,