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

I created custom field 'A' for sale.order table. field 'A' is defined as String in db. A values are numbers most of the time (eg. 50011) and sometimes default strings(eg. 'default'). I want to get top 10 A field numbers in a query. I wrote:

`recent_orders = request.env['sale.order'].sudo().search(
[('...')],
limit=10,
order='A desc')`
but it compares A data as strings. How can I make it compare them as integers and ignore string fields.
Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

If default string is always 'default', you could try writing SQL query with cast function which converts value to your specified type:

result = self._cr.execute('select * from sale_order where A != 'default' order by cast(A as integer) desc limit 10') 
Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 12 16
8659
1
thg 10 20
3534
1
thg 9 20
4509
1
thg 12 19
7028
0
thg 3 15
4595