Фотография не отображается в django html - PullRequest
0 голосов
/ 08 мая 2020

Я потратил несколько часов, пытаясь выяснить, что происходит, но не могу понять, почему фотография не отображается в моем 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')

Большое спасибо,

1 Ответ

0 голосов
/ 08 мая 2020

Я решил эту проблему, добавив static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) в основной файл urls.py. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...