2013-07-08 4 views
0

Если бы я имел следующий класс:Джанго CommaSeperatedIntegerField и отрицательные числа

class foo(models.Model): 
    list = models.CommaSeparatedIntegerField(max_length=255) 

Если я пытаюсь добавить объект Foo от администратора, он не позволит мне заполнить список с отрицательными числами. Например, если я заполняю поле 1,2,3,4 его штрафом. Но 1,2,3, -4 даст мне сообщение об ошибке «Введите только цифры, разделенные запятыми». Есть идеи?

Спасибо!

ответ

0

код валидации CommaSeparatedIntegerField выглядит следующим образом:

comma_separated_int_list_re = re.compile('^[\d,]+$') 
validate_comma_separated_integer_list = RegexValidator(comma_separated_int_list_re, _(u'Enter only digits separated by commas.'), 'invalid') 

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

Предлагаю вам написать собственный код подтверждения на основе этого кода.

+0

Спасибо за ответ. Я предполагаю, что следующий вопрос: есть ли простой способ изменить код проверки? Я не хочу создавать настраиваемое поле модели. – user2545167

+0

Вы можете использовать 'RegexValidator' в поле char, это будет выглядеть так:' list = models.CharField (max_length = 255, validators = [RegexValidator (YOUR_REGEX_HERE)]) ' – Tzach

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