Quantcast
Channel: Active questions tagged html - Stack Overflow
Viewing all articles
Browse latest Browse all 72416

Error while sending JavaScript generated image to Django ModelForm

$
0
0

I’m trying to use https://github.com/szimek/signature_pad to attach a signature to a form and send it to the server. I’ve been able to successfully upload images with a standard ImageField, and have also used szimek/signature_pad to download the signature. But when I try to get the signature to the server, I get "(Hidden field signature) No file was submitted. Check the encoding type on the form." So I think I’m at least successfully sending an image to the field, but am not sure how to encode it.

HTML

<form id="form" action="{% url ‘my_app:testFormPage' %}" method="post" enctype="multipart/form-data">
  {% csrf_token %}
  {{ form.as_p }}
  <div id="signature-pad">
    <canvas></canvas><br>
  </div>
  <input type="hidden" name="signature" value=“signatureImage”>
  <button type="submit" data-action="formSig">Submit</button>
</form>

Python

# Models.py
class testModel(models.Model):
    name = models.CharField(max_length=50)
    date = models.DateTimeField(default=timezone.now)
    signature = models.ImageField (null=True, max_length=3000)

# Forms.py
class testForm(forms.ModelForm):
    class Meta:
        model = testModel
        fields = ‘__all__’
        widgets = { 'signature': forms.HiddenInput(),}

# Views.py
def testFormPage(request):
    if request.method == 'POST':
        form = testForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/thanks/')
    else:
        form = testForm()

    context = {'form': form}
    return render(request, 'client_visits/testFormPage.html', context)

Javascript

The full javascript app can be found at https://github.com/szimek/signature_pad/tree/master/docs/js. Here’s just what I added

var formSig = wrapper.querySelector("[data-action=formSig]");

formSig.addEventListener("submit", function (event) {
        var signatureImage = signaturePad.toDataURL();
    });

Viewing all articles
Browse latest Browse all 72416

Trending Articles