2016-03-10 2 views
2

Я хочу использовать поле процентной формы в Django. В основном в моих моделях у меня есть поле с плавающей точкой. Значение по умолчанию при использовании формы модели - это текстовый ввод, который подтверждает, что это число. Если пользователь хочет ввести 40%, они должны ввести 0,4. То, что я хочу, является необязательным символом процента, который они могут ввести. Поэтому они могут либо входить в 0,4, либо на 40%.Django процентное поле поле

Есть ли что-то подобное в Django? Если нет, то почему? Я бы ожидал, что это будет часто использоваться. Или я им говорю, что это процентное поле и заставлять их просто заполнить 40?

+0

Не совсем то, что вы хотите, но посмотрите на HTTP: // django- extras.readthedocs.org/en/latest/ref/models/fields.html#percentfield – Selcuk

+0

Просто используйте поле float и поместите% справа от ввода в html/template. Или вы можете найти% и нарезать все слева, а затем проверить, что это число. – lciamp

ответ

5

вы можете создать свой собственный валидатор достаточно легко

def valid_pct(val): 
    if val.endswith("%"): 
     return float(val[:-1])/100 
    else: 
     try: 
      return float(val) 
     except ValueError:   
      raise ValidationError(
       _('%(value)s is not a valid pct'), 
       params={'value': value}, 
      ) 

... models.py

class MyModel(models.Model): 
    pct = models.StringField(validators=[valid_pct]) 
+1

lol, я только что сказал это. Великие умы!!! – lciamp

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