Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
3 Trả lời
5972 Lượt xem

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.


Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

You found a solution ?

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

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

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

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

Ảnh đại diện
Huỷ bỏ
Tác giả

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

Bài viết liên quan Trả lời Lượt xem Hoạt động
6
thg 12 23
66255
1
thg 3 19
10668
0
thg 2 16
4
0
thg 12 15
3632
2
thg 3 15
10415