2016-04-28 10 views
0

Ich verwende ein neues Modul zur Anpassung und bestehenden App. Das Modul wird installiert und das Feld wird korrekt angezeigt und korrekt gespeichert. Das Problem ist, dass meine benutzerdefinierten Einschränkungen ignoriert werden. HierOdoo 9 anpassen Modul mit Feld Validierung

ist der vollständige Code aus meiner models.py Datei:

# -*- coding: utf-8 -*- 

from openerp import models, fields, api 
import logging 
_logger = logging.getLogger(__name__) 
# class myfieldsinsaleorder(models.Model): 
#  _name = 'myfieldsinsaleorder.myfieldsinsaleorder' 

class partnercustomfields(models.Model): 
    _inherit = "res.partner" 

    def test(self): 
     return False 

    x_vend_account_ref = fields.Char(string="Our Account ID", 
            help='Our account number with this vendor.', 
            size=20) 
    _constraints = [(test,"Invalid Data",[x_vend_account_ref])] 

Antwort

0

Dank mokiSRB für mich setzt auf dem richtigen Weg. Sein Vorschlag, @ api.constrains zu verwenden, ist korrekt, aber mein beabsichtigter Rückgabewert war ebenfalls falsch.

Wenn ich andere Verwendungen von @ api.constrains in anderen Modulen ansehe, finde ich UserError. Dies funktioniert, aber die Methode ist veraltet. So gut ich die richtige Methode für den Fehler sammeln kann, ist ValidationError, da dies das erwartete Ergebnis erzeugt.

@api.constrains('x_vend_account_ref') 
def customvalidation(self): 
    raise ValidationError('The Field Is Not valid') 
0

Einschränkungen sollten wie folgt verwendet werden:

@api.constrains("x_vend_account_ref") def test(self): return False

+0

Leider wird auch bei dieser Änderung jeder Wert akzeptiert, auch nachdem das Modul deinstalliert und neu installiert wurde. Dank Ihres Vorschlags ging ich zurück und überprüfte die Dokumente und probierte das auch, aber auch kein Glück. @ api.one @ api.constrains ("x_vend_account_ref") def test (self): raise ValidationError ("Name und Beschreibung der Felder müssen anders lauten") –

+0

Haben Sie den Server neu gestartet? Jede Änderung am Modell oder Controller erfordert einen Neustart. – mokiSRB

+0

Ich habe den Server neu gestartet. Kein Effekt. Ich habe verschiedene Varianten ausprobiert, einschließlich einiger Versuche, die dazu führten, dass eine Ausnahme ausgelöst wurde, die zumindest bestätigt, dass die Änderung angewendet wurde, aber ich kann immer noch keine Einschränkungen erhalten, um korrekt zu funktionieren. –