Django поле формы error_messages не работает с IntegerField

Это моя модель :

class Bid(models.Model):

    id = models.AutoField(primary_key=True)
    bid = models.IntegerField(verbose_name='Prix demandé', null=False, blank=False)
    note = models.TextField(verbose_name='Description', null=False, blank=False)
    date = models.DateField(auto_now_add=True)

Это моя форма

class BidForm(forms.ModelForm):

    class Meta:
        model = Bid
        fields = ['bid', 'note']

    bid = forms.IntegerField(error_messages={'invalid': 'Please enter a valid bid'})

Когда ставка недействительна, я всегда получаю сообщение об ошибке по умолчанию, а не то, которое я указал

Убедитесь, что это значение больше или равно 1

Однако он работает, если я добавляю другое поле другого типа, например CharField

class BidForm(forms.ModelForm):

    ....

    bid = forms.IntegerField(error_messages={'invalid': 'Please enter a valid bid'})
    text = forms.CharField(error_messages={'required': 'Please enter a valid text'})

Убедитесь, что это значение больше или равно 1.

Пожалуйста, введите правильный текст

Это мое мнение

def post(self, request, *args, **kwargs):
    project = get_object_or_404(Project, id=self.kwargs['id'])
    form = BidForm(request.POST)
    form.fields['bid'].validators = [MinValueValidator(1)]
    if form.is_valid():
        bid = form.save(commit=False)
        bid.user = request.current_user
        bid.project = project
        bid.save()
        return redirect(....)
    else:
        c = {'project':project, 'form': form}
        return render(....)

в вашем представлении измените следующую строку

form.fields['bid'].validators = [MinValueValidator(1,message='Please enter a valid bid')]

и удалить

bid = forms.IntegerField(error_messages={'invalid': 'Please enter a valid bid'})

сформируйте свою форму

Вернуться на верх