Django не видит checkbox

Django не видит checkbox в форме и вызывает MultiValueDictKeyError. Вот код:
contact.html:

<form method='post' action=" ">
                        {% csrf_token %}
                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group mb-20">
                                    <input type="text" name="name" class="form-control" required placeholder="Ваше имя">
                                </div>
                            </div>

                            <div class="col-md-6">
                                <div class="form-group mb-20">
                                    <input type="email" name="email" class="form-control" required placeholder="Email">
                                </div>
                            </div>

                            <div class="col-12" style="margin-top: 15px;">
                                <div class="form-group mb-20">
                                    <input type="text" name="quest" class="form-control" required placeholder="Вопрос">
                                </div>
                            </div>

                            <div class="col-12" style="margin-top: 15px;">
                                <div class="form-group mb-20">
                                    <textarea name="message" class="form-control" cols="30" rows="8" placeholder="Сообщение"></textarea>
                                </div>
                            </div>

                            <div class="col-lg-12">
                                <div class="custom-checkbox mb-20" style="margin-top: 15px;">
                                    <input id="checkbox" name="terms" type="checkbox" class="input-checkbox" placeholder="" value=""> <!-- ошибка здесь (не видит name="terms" и в views.py в request.POST terms нету) -->
                                    <label class="form-check-label" for="checkbox"><span> Я принимаю <a href="{% url 'terms-conditions' %}">лицензионное соглашение</a> </label> 
                                </div>
                            </div>

                            <div class="col-md-12">
                                <button class="btn btn-lg btn-primary rounded-pill" type="submit" aria-label="Send Message">Отправить сообщение</button>
                            </div>
                        </div>
                    </form>

views.py:

def contact(request):
    settings = Settings.objects.latest('id')
    last_blog = Blog.objects.latest('id')
    contact = Contact.objects.latest('id')

    message = ''
    show_message = False
    not_terms = False
    if request.method == 'POST':
        show_message = True
        try: #выводит "Ошибка при отправке обращения". но если убрать try выдает MultiValueDictKeyError
            terms = request.POST['terms']
            if terms == ['off']:
                not_terms = True
                raise
            name = request.POST['name']
            if len(name) > 255:
                raise
            email = request.POST['email']
            if len(email) > 255:
                raise
            quest = request.POST['quest']
            if len(quest) > 255:
                raise
            message = request.POST['message']
            if len(email) > 50:
                raise

            HelpMessage.objects.create(name=name, email=email, quest=quest, message=message)
            message = 'Обращение успешно созданo!'
        except Exception:
            if not_terms:
                message = 'Ошибка: Политика конфиденциальности не принята.'
            else:
                message = 'Ошибка при отправке обращения.'

    return render(request, 'contact.html', locals())

urls.py

urlpatterns = [
 path('contact/', contact, name='contact'),
]

models.py

class HelpMessage(models.Model):
    name = models.CharField(
        verbose_name='Имя',
        max_length=255
    )
    email = models.EmailField(
        verbose_name='Email'
    )
    quest = models.CharField(
        verbose_name='Вопрос',
        max_length=255
    )
    message = models.TextField(
        verbose_name='Сообщение'
    )

    def __str__(self):
        return self.title
    
    class Meta:
        verbose_name = 'Обращение в поддержку'
        verbose_name_plural = 'Обращения в поддержку'
Вернуться на верх