콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
2 답글
5455 화면

Is there any alternative way to create/write data at once  ?

Now i'm using
for rec in bla :
    vals = {}
    vals['name'] = rec.name

    obj.create(vals)

When i'm trying to create 1000++ data i will be very slow, take 1-3 Hours.
I need alternative way ! Thank You !!




        

아바타
취소
베스트 답변

Hi @Chaanto

There are several ways that you could use to get that task done. Here I give you 2. Hope it will help you

1- Using Model load method that accept 2 arguments, fields and data. were fields is a list of fields that match the elements in the data rows meaning that the argument with the data need to be a list of rows and every row will be the list of values of the fields in the same order

Model = self.env['model.name']
result = Model.load(
['name', 'value'],
[
['A', '1'],
['B', '2'],
['C', '3']
],
)
2- Using Cursor copy_from by building a CSV with the data to be load using an SQL Copy Commands
fields = ['name', 'value']
self.env.cr.copy_from(io.StringIO(
u'\n'.join(
u"%s\t%s\t%s\t%d" % (
rec.name,
rec
.value
)
for rec in bla
)),
table='model_table',
columns=fields,
)
아바타
취소
관련 게시물 답글 화면 활동
1
5월 18
4139
0
2월 18
3382
Libary managment 해결 완료
2
5월 23
2116
2
12월 18
9683
0
5월 16
3680