Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
3 Odpowiedzi
46600 Widoki

When I create a custom model in the web GUI, how can I mark a field as "unique", so that the database will never create a second row with the same field value?

Awatar
Odrzuć
Najlepsza odpowiedź

You can only do this when you create your field via Python.

See https://accounts.openerp.com/forum/Help-1/question/16386

_sql_constraints = [
                     ('field_unique', 
                      'unique(field)',
                      'Choose another value - it has to be unique!')
]

Note that if there are existing records for the model in the database, then any field values have to be unique, or this will fail and OpenERP will do nothing to enforce the constraint for new records.

Awatar
Odrzuć
Autor

Thanks, so I will have to write a Python module for my table. Maybe it would be a nice enhancement if there would be a "unique" flag in the GUI as well. I assume, that unique fields are needed often (serial numbers, order numbers, etc.).

Najlepsza odpowiedź

Hi,

add a sql constraint to your model :

_sql_constraints = [
        ('uniq_name', 'unique(stuff_name)', "A stuff already exists with this name . Stuff's name must be unique!"),
    ]

Best regards

Awatar
Odrzuć
Autor

Thanks, too!

Najlepsza odpowiedź
_sql_constraints = [
        ('uniq_name', 'unique(your_field_name)', "You Entered data is already exists with this name. Please give data must be unique!"),
    ]
Awatar
Odrzuć
Powiązane posty Odpowiedzi Widoki Czynność
1
mar 15
6959
2
mar 15
6258
2
mar 22
2483
0
mar 24
3151
3
cze 17
6964