2015-02-13 4 views
0

Учитывая поле моделипереопределения по умолчанию валидатор Джанго

my_number = models.PositiveIntegerField(validators=[ MaxValueValidator(360) ])

есть способ переопределить минимальную и максимальное валидаторы по умолчанию? Выше я просто добавляю новый валидатор и отлично работает на сервере. Тем не менее, я передаю словарь валидаторов клиенту, а два поля MaxValueValidators установлены на поле вместо одного.

ответ

0

Вы рассмотрели переопределение функции clean() вашей формы?

В качестве примера, Heres то, что я сделал в прошлом:

class ChemLabTimeSelect(forms.Form): 

    from_date = forms.DateTimeField(
     widget=DateTimePicker(options={"format": "YYYY-MM-DD HH:mm:ss", 
             "pickTime": True})) 
    to_date = forms.DateTimeField(
     widget=DateTimePicker(options={"format": "YYYY-MM-DD HH:mm:ss", 
             "pickTime": True})) 

    def clean(self): 
     cleaned_data = self.cleaned_data 
     if cleaned_data.has_key('from_date') and cleaned_data.has_key('to_date'): 
      total_days = (cleaned_data['to_date'] - cleaned_data['from_date']).days 
      negative_days = (cleaned_data['from_date'] - cleaned_data['to_date']).total_seconds() 
      if negative_days > 0: 
       raise ValidationError({'from_date':["The from date is greater than the to date!",]}) 
      elif total_days > 7: 
       raise ValidationError(["The amount of time selected is %s days which is too large!" % total_days,])   
     return cleaned_data 

Также модель имеет чистую() функцию переопределения и должны быть в состоянии достичь желаемого результата. но следует помнить о различиях между чистым переопределением формы и модели.

+0

Да, но я не использую формы django, а скорее использую валидации для информирования углового клиента – user2954587

Смежные вопросы