Czy w tabeli istnieje wartość [Zamknięte]

To pytanie zostało zamknięte z powodu: niezwiązane z tematem lub nieaktualne

przez
Dr.One
na 22.09.2015 13:32:29

Utworzyłem liste marek, wszystko pieknie funkcjonuje ale .... jak w prosty sposób zbudować funkcję która sprawdzi czy w bazie istnieje już taki wpis/taka marka a jesli istnieje .... komunikat "istnieje w bazie, nie można zapisać!" albo "wpis o takiej nazwie istnieje czy napewno chcesz zapisać ?"

Dr.One
Dr.One
341
| 5 3 5
Data pytania 01.05.2015, 09:23
0
głos
633 Odsłony

Co robię źle ?
Gdzie tkwi problem ?
Nie wiem czy to istotne ale może to mieć związek z tym, że informacje których duplikowanie chciałbym zatrzymać są w klasie product_variant kod wygląda tak:
#================= K L A S A  V A R I A N T ==================
Klasa ta posiada dwa pola: name i selector
selector => jest używany do filtrowania.
Żeby zapobiec powielaniu nazw w Variant chciałem użyć _sql_constraint jak sugerowaliście ale coś nie bardzo działa bo albo nie wiem gdzie to powinno być umieszczone albo ... ponieważ dane są zapisywane do pola typu many2one ?

class product_variant(orm.Model):
    _name = 'product.variant'
    _columns = {
        'name': fields.char('Variant'),
        'selector': fields.selection([
            ('Computer','Computer'),
            ('Processor','Processor'),
            ('Storage_device','Storage device'),
            ('Optical_drive','Optical drive'),
            ('RAM_module','RAM module'),
            ('Graphics_card','Graphics card'),
            ('Storage_controller','Storage controller'),
            ('Power_supply','Power supply'),
            ('Monitor','Monitor'),
            ('Motherboard','Motherboard'),
            ('Cable','Cable'),
            ('Case_part','Case part'),
            ('Peripheral','Peripheral'),
            ('Internal_components','Internal components')],'selector'),
}
#gdzie to powinienem umieścić ? => _sql_constraints = [('variant.name_uniq', 'unique(variant.name)', 'Already exist!')]
chciałbym aby dotyczyło to wyłacznie tej klasy.

class product_template(orm.Model):
    _inherit = 'product.template'
    _columns = {
        'product_variant_id': fields.many2one(
            'product.variant',

            'Variant', help='Select or add a variant of the IBM or Lenovo product if not exist', ondelete='restrict'),
}

Dr.One
Dr.One
341
| 5 3 5
Data odpowiedzi 05.05.2015, 11:09
0
głos

Użyj klauzuli _sql_constraints lub dekoratora @constrains, w zależności od konkretnej potrzeby.

Dariusz Żbikowski
Dariusz Żbikowski
1263
| 4 3 3
Data odpowiedzi 04.05.2015, 09:39
0
głos

class product_template(osv.osv): _inherit = "product.template" _sql_constraints = [ ('name_uniq', 'Check(1=1)', 'Nazwa istnieje na liscie!'), ] product.brand() czy tak ? A jeśli w starym API bo to mi wygląda na nowy :)

Dr.One
na 05.05.2015, 10:59

Twoja odpowiedź

Spróbuj dać znacząca odpowiedź. Jeśli chcesz wypowiedzieć się na temat pytania lub odpowiedzi, po prostu użyj narzędzia komentowania. Proszę pamiętać, że zawsze można zrewidować swoją odpowiedź - nie ma potrzeby odpowiadać na to samo pytanie dwa razy. Także prosimy, nie zapomnij zagłosować - to naprawdę pomaga wybrać najlepsze pytania i odpowiedzi!

Zadaj Pytanie

Bądź na bieżąco

O tym forum

Forum dla profesjonalistów i entuzjastów systemu Odoo. Dyskusje, porady, opinie, komentarze.

Przeczytaj wytyczne

Narzędzia do pytań

3 obserwujący

Statystyki

Spytał/a: 01.05.2015, 09:23
Oglądano: 633 razy
Ostatnia aktualizacja: 22.09.2015, 13:32