Ограничить количество цифр в целых числах?

#python #integer #openerp

#python #целое число #openerp

Вопрос:

Есть ли способ ограничить количество цифр в integer в OpenERP, как вы можете в типе char? Мне нужно поле, которое позволяло бы вводить не более двух цифр.

Например, с помощью char вы можете сделать это:

 from openerp.osv import fields

'char_field': fields.char(size=2),
  

Тогда, если вы попытаетесь ввести более двух символов, он не запишет его.

Но если я создам целочисленное поле:

 'integer_field': fields.integer(),
  

Это позволит мне написать любое количество цифр, которое я хочу.

Комментарии:

1. Используйте что-то вроде len(str(123)) проверки длины целого числа (хотя понятия не имею, что такое openerp)?

2. Да, я знаю, что могу проверить это с помощью чего-то после ввода целого числа (в методах создания / записи). Но я хотел бы полностью предотвратить это. Как и в случае с типом символа, вам просто не нужно проверять, превышает ли длина ограничение по размеру, потому что это просто не позволяет вводить больше символов.

3. @senthilnathang Да, это может быть наилучшим возможным подходом. Но есть один деликатный вопрос. При создании первой записи она должна позволять вводить любую информацию, которую хочет пользователь (это связано с особенностями работы клиентов. Этого пользователя можно вызвать в любое время, и он должен немедленно покинуть рабочее пространство. Поэтому он должен иметь возможность сохранить эту запись). И именно поэтому я ищу способы предотвратить неправильные вводы заранее, но в любом случае разрешаю создание записи.

4. затем вам нужно проверить с помощью методов create и write для проверки значения поля

5. @senthilnathang Ну, на самом деле это было бы то же самое, что и предотвращение создания / записи. Проверка происходит при нажатии кнопки подтверждения. Так что, я думаю, я могу реализовать такие проверки проверки при подтверждении. Единственная проблема в том, что метод подтверждения уже полон всевозможных проверок.

Ответ №1:

Вы можете использовать a _constraint для проверки значения вашего целого числа и вызвать исключение, если оно не находится в желаемом диапазоне.

Проверьте это сообщение в блоге о том, как создать ограничение.

Комментарии:

1. Забыл об ограничениях. Ну, я думаю, что нет лучшего подхода для ограничения цифр в целых числах, чем этот. Так что это должно сработать. Спасибо.