#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. Забыл об ограничениях. Ну, я думаю, что нет лучшего подхода для ограничения цифр в целых числах, чем этот. Так что это должно сработать. Спасибо.