'display images in djangoi template from database in Django3
Here i am using Django 3 and Python 3.7 where i want to display the the signature as image in my html page
Here is my views.py
def jobsignature_view(request, pk):
job = CreateJob.objects.filter(id=pk)
job_data={}
for val in job_id:
job_data['job_id'] = pk
job_data['signature'] = val.signature
......
....
Here is my models.py
class Cre(models.Model):
signature = models.TextField(default='', blank=True, null=True)
here in my database it is saving as
id signature
1 b'b3V0cHV0'
Here is my template.html
I confirm that this work has been completed:
<div class="span12">
{{ form.media }}
{% if job_data.signature != None and job_data.signature != '' %}
<img src="data:image/png;base64,{{job_data.signature}}"/>
{% endif %}
</div>
here is how its is displaying
How can i make my signature display here please help me
Solution 1:[1]
In your life I think for a search on a primary key it is more appropriate to use get(), your primary key is unique, we expect only one object. Filter() is used to return a queryset of otherwise multiple items :
def jobsignature_view(request, pk):
job = CreateJob.objects.get(id=pk)
return render(request, 'myapp/yourpage.html', {'job': job})
In the html template :
{% if job %}
<img src="{{job.signature}}"/>
{% endif %}
For the model I think you should use ImageField :
from django.core.files.storage import FileSystemStorage
from django.db import models
fs = FileSystemStorage(location='/media/photos')
class CreateJob(models.Model):
...
signature = models.ImageField(storage=fs)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Pierre-Nicolas Schleicher |

