поле:

s.py

class MyModel(models.Model):
    pub_date = models.DateTimeField(default=timezone.now)
    title = models.CharField(max_length=255, blank=False, null=False)
    text = models.TextField(blank=True, null=True)

forms.py

class MyModelForm(ModelForm):
    tos = BooleanField()
    class Meta:
        model = models.MyModel
        fields = ['title', 'text', 'tos']
        widgets = {
            'title': TextInput(attrs={'class': 'form-control', 'placeholder': 'Title'}),
            'text': Textarea(attrs={'class': 'form-control', 'placeholder': 'Text'}),
            'tos': CheckboxInput(attrs={'data-validation-error-msg': 'You have to agree to our terms and conditions'}),
        }

Результаты:

>>> print(forms.MyModelForm())
<tr><th><label for="id_title">Title:</label></th><td><input type="text" name="title" class="form-control" placeholder="Title" maxlength="255" required id="id_title" /></td></tr>
<tr><th><label for="id_text">Text:</label></th><td><textarea name="text" cols="40" rows="10" class="form-control" placeholder="Text" id="id_text"></textarea></td></tr>
<tr><th><label for="id_tos">Tos:</label></th><td><input type="checkbox" name="tos" required id="id_tos" /></td></tr>

Вы можете увидеть это в поле TOSdata-validation-error-msg атрибут отсутствует.

Есть идеи?

РЕДАКТИРОВАТЬ

Это работает:

class MyModelForm(ModelForm):
    tos = BooleanField(
        widget=CheckboxInput(
            attrs={'data-validation-error-msg': 'You have to agree to our terms and conditions'}))
    class Meta:
        model = models.MyModel
        fields = ['title', 'text', 'tos']
        widgets = {
            'title': TextInput(attrs={'class': 'form-control', 'placeholder': 'Title'}),
            'text': Textarea(attrs={'class': 'form-control', 'placeholder': 'Text'}),
        }

Это все еще странно, что это не сработало сMeta класс.

Ответы на вопрос(1)

Ваш ответ на вопрос