过滤来自many2one字段的值

时间:2019-01-21 10:19:20

标签: python python-2.7 odoo odoo-10

请帮助,我想从many2one中的字段中过滤值。 我尝试了各种方法,但是仍然难以理解。

这就是我的代码;

zona_parkir=fields.Char('Zona Parkir', related='location_id.zone_id.name', readonly='True')
location_id=fields.Many2one('parking_location', string='Lokasi', required='True')
 class ParkingLocation(models.Model): #parking_location
    _name='parking_location'
    _rec_name='name'

    name=fields.Char('Lokasi') 
    zone_id=fields.Many2one('parking_zone', string='Zona')

class ParkingZone(models.Model):
    _name='parking_zone' #parking zone
    _rec_name='name'

    name=fields.Char('Zona Parkir')    billing=fields.Float('Tarif')
    information=fields.Text('Keterangan')
 parking_log_ids=fields.One2many('parking_log','parking_log_id',string='Log Parkir')class ParkingLog(models.Model):
    _name='parking_log'
    _rec_name='vehicle_id'

    vehicle_id=fields.Many2one('vehicle',string='Nomor Kendaraan')
    vehicle_type_id=fields.Char(string='Jenis Kendaraan', related='vehicle_id.vehicle_type.name', readonly='True')
    rate_id=fields.Float('Tarif / Jam', related='vehicle_id.vehicle_type.billing')
    user_id=fields.Many2one('res.users',string='Juru Parkir', default=lambda self: self.env.user, readonly='true')
    parking_log_id=fields.Many2one('parking_session', string='Sesi Parkir', readonly='True')

    total_rate=fields.Float(string='Total Biaya Parkir',states={'in' : [('readonly', 'False')], 'paid' : [('readonly', 'False')]}, store='True', readonly='True', compute='action_close', track_visibility='onchange')
    parking_point_id=fields.Many2one('parking_point',string='Titik Parkir')
    parking_location_id=fields.Char('Lokasi Parkir', related='parking_log_id.location_id.name',readonly='True')
    parking_zone_rate_id=fields.Char('Zona Parkir', related='parking_log_id.zona_parkir',readonly='True')
    parking_hours=fields.Float('Lama Parkir', store='True', readonly='True', compute='action_close', track_visibility='onchange')


class Vehicle(models.Model):  
    _name='vehicle'
    _rec_name='vehicle_number'

    vehicle_type=fields.Many2one('vehicle_type',string='Jenis Kendaraan',ondelete='cascade')
    vehicle_number=fields.Char(string='Nomor Kendaraan'
class VehicleType(models.Model):
    _name='vehicle_type'

    name=fields.Char('Jenis Kendaraan')
    billing=fields.Float('Tarif')

关键是当我选择('location_id')

假设我在该字段中划分了3个区域

zone X = B = 2 and C = 3 
zone Y = B = 1.5 and C = 2.5 
zone Z = B = 1 and C = 2 

然后,我先前输入的值已记录在“计费”字段中,并且当我在o2m字段中“添加项目”时,其中的值是来自所选区域之一的区域的过滤结果。

我认为我该怎么办?

也许我的代码不存在/不合适。 也征求意见。

我将感谢所有形式的答案,非常感谢。

0 个答案:

没有答案