W mojej instalacji OpenERP mam następujące pole, które nie było wymagane wcześniej, ale zmieniłem wymagany argument na True.Jak sprawić, aby pole w OpenERP było wymagane tylko dla określonego stanu przepływu pracy?
'fiscal_position': fields.many2one(
'account.fiscal.position',
'Fiscal Position',
required=True,
readonly=True,
states={'draft':[('readonly',False)]}
),
W dzienniku debugowania widzę, że ORM próbuje ustawić nie zerowe ograniczenie dla tego pola w bazie danych.
2013-01-04 15:28:56 EET STATEMENT: ALTER TABLE "account_invoice"
ALTER COLUMN "fiscal_position" SET NOT NULL
Jak mogę temu zapobiec? Moim pomysłem jest posiadanie wymaganej flagi True, tylko dla nowych rekordów i bez ograniczenia NOT NULL. W innych przypadkach występują błędy integralności PostgreSQL:
IntegrityError: null value in column "fiscal_position" violates
not-null constraint
Tak, jak mogę mieć wymagane pola w widoku formularza, bez ORM dotknąć ograniczenia schematu bazy danych? Albo w jaki sposób mogę zmienić pole wymagane dynamicznie, zgodnie ze stanem obiektu?
Dzięki za pomoc. –