Hello team!
I'm trying to create a new "Habitacion" object which has a Many2many with another model which basically has 2 fields ( name : char and foto: binary ), well im using the .create method to add a new habitacion object to the "Hotel" model which has a one2many relation with Habitacion, this works without problem, and the code below of the function "anyadir_habitacion" works. But not fully.
The problem is on the fotos var, where i store objects of roomfotos , but then when i create the new habitacion it does not show any photos or pictures, what is happening? Why the pictures are not shown?
Below i attach the important code
class roomfotos(models.Model):
_name = 'hotels_be_bago.roomfotos'
name = fields.Char("Nombre de la foto")
foto = fields.Binary("Seleccione una foto para agregar")
lass habitacion(models.Model):
_name = 'hotels_be_bago.habitacion'
hotel = fields.Many2one("hotels_be_bago.hotel", "Hotel")
name = fields.Text()
camas = fields.Selection([('1', 'Cama Solitaria'), ('2', 'Cama Matrimonio'), ('3', 'Cama Familiar'),
('4', 'Cama Infantil con matrimonio'), ('5', 'Distribución numerosa')])
fotoprincipalRoom = fields.Binary(compute='_recuperar_foto_rooms', store=True)
fotos = fields.Many2many("hotels_be_bago.roomfotos" , store=True)
precios = fields.Integer(default=20)
reserva=fields.One2many("hotels_be_bago.reserva","habitaciones")
disponibilidad=fields.Char(string="Estado",compute='_getestado',readOnly=True)
descripcion = fields.Text(
default="Una agradable habitación presidencial. Perfecta para descansar y hacer todo tipo de travesuras.")
lass hotel(models.Model):
_name = 'hotels_be_bago.hotel'
name = fields.Char()
galeriaFotos = fields.Many2many("hotels_be_bago.hotelfotos")
fotoprincipal=fields.Binary(compute='_recuperar_foto',store=True)
description = fields.Text()
ciudad=fields.Many2one("hotels_be_bago.city","Ciudad")
pais=fields.Char(string='Pais del hotel',related='ciudad.country.name')
roomlist=fields.One2many("hotels_be_bago.habitacion","hotel")
estrellas = fields.Selection([('1', '⭐'), ('2', '⭐⭐'), ('3', '⭐⭐⭐'), ('4', '⭐⭐⭐⭐'), ('5', '⭐⭐⭐⭐⭐')])
valoraciomedia=fields.Selection([('1', '⭐'), ('2', '⭐⭐'), ('3', '⭐⭐⭐'), ('4', '⭐⭐⭐⭐'), ('5', '⭐⭐⭐⭐⭐')],compute='_calcular_media',store=True)
listaServicios = fields.Many2many("hotels_be_bago.servicis")
comentarios = fields.One2many('hotels_be_bago.comentarios','hoteles')
@api.one
def anyadir_habitacion(self):
hotel=self.env['hotels_be_bago.hotel'].search([('id','=',self.id)])
name="Habitacion " + str(hotel.name)
camas=str(random.randint(1,5))
precios=random.randint(100,1000)
fotos=self.env['hotels_be_bago.roomfotos'].search([('id','=',random.choice([self.env.ref('hotels_be_bago.roomfoto1').id,self.env.ref('hotels_be_bago.roomfoto2').id,self.env.ref('hotels_be_bago.roomfoto3').id,self.env.ref('hotels_be_bago.roomfoto4').id,self.env.ref('hotels_be_bago.roomfoto5').id]))])
habitacion={'hotel':hotel.id,'name':name,'camas':camas,'precios':precios,'fotos':fotos}
hotel.roomlist.create(habitacion)
print(habitacion)