bhavasagar
bhavasagar

Reputation: 91

Image isn't uploading to database from form django

images which are collected through the form are not uploaded to the database

how to fix this issue

please help me

views.py

class club(ListView):
    model = UserProfile
    template_name = "club.html"
    def post(self, *args ,**kwargs):
        if self.request.method == 'POST':
            self.request.user.userprofile.userphoto = self.request.FILES.get('image')
            self.request.user.userprofile.phone_number = self.request.POST.get('userphonenumber')
            self.request.user.userprofile.Isclubmem = True
            self.request.user.userprofile.save()
            return redirect('core:home')

club.html

<div class="container">
            <form action="." method="POST">
                {%csrf_token%}
                <b>Register:<br><br></b>
                Profile Pic:
                <input name="image" accept=".png,.jpg,.jpeg" type="file" value=selectimage><br><br>
                Phonenumber:
                <input name="userphonenumber" type="number" placeholder="+91 9876543210" ><br><br>
                <input type="submit" value="submit" class="btn btn-success">
            </form>
        </div>

models.py

class UserProfile(models.Model):
    user = models.OneToOneField(
        settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    stripe_customer_id = models.CharField(max_length=50, blank=True, null=True)
    Isclubmem = models.BooleanField(default=False)
    one_click_purchasing = models.BooleanField(default=False)
    userphoto = models.ImageField(upload_to='images/', null=True)
    phone_number = models.IntegerField(default=False)
    usermoney = models.FloatField(default=0.0)
    def __str__(self):
        return self.user.username

Upvotes: 1

Views: 30

Answers (1)

willeM_ Van Onsem
willeM_ Van Onsem

Reputation: 477607

The form should specify enctype="multipart/form-data" if you want to upload files, so:

<form action="." method="POST" enctype="multipart/form-data">
    …
</form>

Upvotes: 1

Related Questions