0

In my django project I have to save an image from views.py to the database here is my models.py

class Mymodel(models.Model):
    id=models.IntegerField(unique=True,primary_key=True)
    name=models.CharField(max_length=20,unique=True)
    qrCode=models.ImageField(upload_to="img/")

    def __str__(self):
        return self.name

here is my views.py

def mainForm(request):
    if request.method=="POST":
        id=request.POST['id']
        name=request.POST['name']
        newItem=Mymodel.objects.create(id=id,name=name,qrCode="../qr.jpg")
        newItem.save()
        return HttpResponse("item saved")
    else:    
        return render(request,"main.html") 

while i am writing code like this, its working but image is not saving to database only url is saving. How to solve this issue? Actually what is the right method to upload image from views.py?

paul kv
  • 11
  • 1

1 Answers1

0

I guess your challenge comes from your view since you are posting, you need to add the image attribute(qrCode) to your post function like so:

def mainForm(request):
    if request.method=="POST":
        id=request.POST['id']
        name=request.POST['name']
        qrCode = request.POST['qrCode']
        newItem=Mymodel.objects.create(id=id,name=name,qrCode=qrCode)
        newItem.save()
        return HttpResponse("item saved")
    else:    
        return render(request,"main.html") 

HTML for main.html Input to upload images

<input  type="file" name="qrCode" accept="image/*" id="id" multiple>
  ...
   ...
Godda
  • 951
  • 1
  • 10
  • 26