Bonjour
Il m'est arrivé à plusieurs reprise d'avoir la difficulté de mettre la vue à jour après les modifications des données... cependant il me semble que naturellement odoo devrait mettre à jour les données dans la vue sans avoir d'action particulière?
Par exemple ici j'ai une méthode pour créer un objet :
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 declaration = fields.One2many(comodel_name='a_w_3.declaration', inverse_name="x_invoice_line",ondelete='set null') api.onchange('product_id'): def _onchange_product(self): if( not self.x_inv_declaration): self.declaration = self.env['a_w_3.declaration'].create({}) self.declaration.x_invoice=self.invoice_id self.declaration.x_invoice_start=self.invoice_id.x_date_start self.declaration.x_invoice_end=self.invoice_id.x_date_end self.declaration.currency_id=self.invoice_id.currency_id self.declaration.x_invoice_state=self.invoice_id.state self.declaration.x_invoice_retro_com=self.invoice_id.x_amount_com self.declaration.x_invoice_client=self.invoice_id.partner_id self.declaration.x_article_com_ics=self.x_com_ics self.declaration.x_article_nom=self.product_id.display_name self.declaration.x_article_police=self.product_id.attribute_value_ids self.declaration.x_article_quantity=self.quantity self.declaration.x_article_prix_unit=self.price_unit self.declaration.x_client_taxe=self.product_id.product_tmpl_id.x_client_taxe d
je crée bien l'objet mais dans la vue il apparait sans les valeurs que je lui passe voici le modèle :
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 class a_i_wycc_declaration(models.Model): _name='a_w_3.declaration' x_state = fields.Selection(string='state of line', selection=[('dec_base','Non déclaré'), ('dec_done', 'Déclaration faite'),('dec_imp', 'Bdx CIE imprimé'),('dec_paided', 'Bdx CIE payé')],default='dec_base') x_invoice_line = fields.Many2one(comodel_name='account.invoice.line', string='ligne de la déclaration', ondelete='set null') x_invoice = fields.Many2one(comodel_name="account.invoice", string='facture ', ondelete='set null') x_invoice_start = fields.Date( string="date facture") x_invoice_end = fields.Date( string="date échéance") x_invoice_number = fields.Char( string="numéro ") currency_id = fields.Many2one(related="x_invoice.currency_id", string="currency") x_invoice_state = fields.Selection( string='état',related="x_invoice.state") x_invoice_retro_com = fields.Monetary( string="retro") x_invoice_client=fields.Many2one('res.partner') x_partner = fields.Many2many('res.partner', string='associées') x_partner_name=fields.Char(string='Société',default="inconnu") x_company = fields.Many2one(comodel_name='res.company',compute='_compute_partner',string="company") x_article_com_ics = fields.Float(string='com ics article') x_article_nom = fields.Char( string=' nom de l\'article ') x_article_police = fields.Many2many(related="x_invoice_line.product_id.attribute_value_ids",string=' police(s) ') x_article_quantity = fields.Float( string="quantité") x_article_prix_unit = fields.Float( string="prix unitaire ") x_client_taxe = fields.Float(string='Taxe')
Est ce qu'il ya une mauvaise conception qui explique cela?
Partager