Skip to Content
Meniu
Trebuie să fiți înregistrat pentru a interacționa cu comunitatea.
Această întrebare a fost marcată
3 Răspunsuri
5936 Vizualizări

I have sql constraint defined like this:

_sql_constraints = [
     ('checksum_uniq', 'unique(checksum)', ' The same file already exists in the system!'),
     ]

Then in a loop I create records

for file in files:
    try:
        self.env[model].create({'filename':file.fname,'file':file.file_data})
    except IntegrityError, e:
print 'skipping file ' + file.fname

The problem is that the cursor is closed after IntegrityError so the loop fails after that but I want to skip the records that fail and continue the loop.


Imagine profil
Abandonează
Cel mai bun răspuns

You found a solution ?

Imagine profil
Abandonează
Cel mai bun răspuns

how to continue for loop when create has error? 
use continue and pass do not work. 

Imagine profil
Abandonează
Cel mai bun răspuns

for file in files:
    if file:
        self.env[model].create({'filename':file.fname,'file':file.file_data})
    else:
print 'skipping file ' + file.fname

Imagine profil
Abandonează
Autor

This doesn't really makes sense. Maybe I was not clear but the problem is that if file.checksum is duplicated with another already in the system then it throws a Error and the only option I have is to rollback the whole transaction

Related Posts Răspunsuri Vizualizări Activitate
6
dec. 23
66231
1
mar. 19
10654
0
feb. 16
4
0
dec. 15
3624
2
mar. 15
10398