2015-07-23 15 views
8

Jak obliczyć wartość dla wartości domyślnej w polach obiektów w Odoo 8 models.pyJak ustawić wartości domyślne za pomocą metod w Odoo 8?

Nie możemy użyć _default przypisują już w Odoo 8.

field_name = fields.datatype(
    string=’value’, 
    default=compute_default_value 
) 

W powyższej deklaracji pola , Chcę wywołać metodę przypisywania wartości domyślnej dla tego pola. Na przykład:

name = fields.Char(
    string='Name', 
    default= _get_name() 
) 

Proszę mi pomóc w tej sprawie.

Odpowiedz

11

Można użyć funkcji lambda tak:

name = fields.Char(
    string='Name', 
    default=lambda self: self._get_default_name(), 
) 

@api.model 
def _get_default_name(self): 
    return "test" 
+0

Tak, to działa .. Dzięki. –

+0

Działa, ale można to zrobić w prostszy sposób. Zobacz moją odpowiedź. –

+1

Tak, ale jeśli chcesz przestrzegać [wytycznych OCA] (https://github.com/OCA/maintainer-tools/blob/master/CONTRIBUTING.md#field) i postępować zgodnie z konwencjami, możesz sprawdzić, czy "Pola deklaracje "są zawsze powyżej" Metody domyślne ". Jeśli zadeklarujesz funkcję tak, jak napisałeś w swoim poście, nie możesz tego zrobić w ten sposób. – ChesuCR

9

Prostsza wersja na odpowiedź @ChesuCR:

def _get_default_name(self): 
    return "test" 

name = fields.Char(
    string='Name', 
    default=_get_default_name, 
) 
+0

Plus 1 dla łatwiejszej odpowiedzi, zaoszczędziłeś mój czas, aby napisać odpowiedź :) –

+0

Cześć Daniel Reis, dostaję się do pętli podczas próbowania tego. Nic się nie dzieje – user280960

Powiązane problemy