Django: Default ImageField Return
Question:
I have a Django ImageField
with djangorestframework
, and I want it to return a default image if it’s none. How can I return an image from my staticfiles
to replace this?
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
Answers:
set default
in model field.
class MyModel(models.Model):
image = models.ImageField(default='path/to/static/image.jpg')
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.url
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})
In 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 %}
I have a Django ImageField
with djangorestframework
, and I want it to return a default image if it’s none. How can I return an image from my staticfiles
to replace this?
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
set default
in model field.
class MyModel(models.Model):
image = models.ImageField(default='path/to/static/image.jpg')
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.url
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})
In 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 %}