Django: возврат изображения по умолчанию - PullRequest
0 голосов
/ 23 марта 2020

У меня есть Django ImageField с djangorestframework, и я хочу, чтобы оно возвращало изображение по умолчанию, если оно отсутствует. Как я могу вернуть изображение из моего staticfiles, чтобы заменить это?

class MyModel(models.Model):
    image = models.ImageField()
    ...

    def get_image(self):
        """
        Returns an image, or the default image.
        """
        if not self.image:
            # what goes here? <---
        return self.image

Ответы [ 2 ]

0 голосов
/ 23 марта 2020

models.py

class The_image_model(models.Model):
    image = models.ImageField(upload_to='images', blank=True)
    ...

views.py

def get_the_image(request):
    get_images = The_image_model.objects.all()
    ...
return render(request, 'imageTemplate.html', {'get_images':get_images})

В imageTemplate. html:

{% load static %}


{% if get_images.images.url  %}
   <img class="img-fluid rounded mb-3 mb-md-0" src="{{ get_images.images.url}}" 
alt="">
{% else %}
   <img class="img-fluid rounded mb-3 mb-md-0" src="{% static 'image/empty-image.jpg' %}" 
alt="">
{% endif %}


0 голосов
/ 23 марта 2020

набор default в поле модели.

class MyModel(models.Model):
    image = models.ImageField(<b>default='path/to/static/image.jpg'</b>)

Update-1

from django.conf import settings


class MyModel(models.Model):
    image = models.ImageField(blank=True)
    ...

    def get_image(self):
        if not self.image:
            return f'{settings.STATIC_URL}sample/img/default.png'
        return self.image.ur

l

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