Benvenuto!
Questo è il forum ufficiale dell'Associazione Odoo Italia. Dopo esserti registrato potrai partecipare ponendo domande o rispondendo a quelle esistenti. Non scordarti di compilare il tuo profilo e consultare le linee guida prima di iniziare a scrivere.
[ODOO 12] Cambiare il dominio di un field in un modello tramite una var. booleana di un altro modello
Salve, sto provando a cambiare il dominio del campo "product_id", esso è un campo Many2one del modello di base di odoo "product.template"
Questo è il codice:
class AccountInvoice(models.Model):
_inherit='account.invoice'
x_plurianno_check_invoicing = fields.Boolean(string="Corso di Laurea pluriennale")
@api.onchange('invoice_line_ids','x_plurianno_check_invoicing')
def action_plurianno_create(self):
listaid=[]
if self.x_plurianno_check_invoicing == True: #When I click on the "Corso di Laurea pluriennale" checkbox, find the ids with the x_rata_pluriennale == True
wt = self.env['product.template']
trovato=wt.search([('x_rata_pluriennale','=','True')])
for prodotti in trovato:
listaid.append(prodotti.id)
print("la lista id è")
print(listaid)
#here, I try to override the product_id field defined in anagraf_prodotto model
self.env['product.template'].product_id=fields.Many2one(comodel_name='account.invoice.line', domain=listaid)
product template inherited class:
class anagraf_prodotto(models.Model):
_inherit = "product.template"
x_rata_pluriennale = fields.Boolean(string="Prodotto Pluriennale")
Ma il dominio non cambia quando provo a creare una fattura, infatti riesco a vedere tutti i prodotti, mentre vorrei far mostrare solo quelli che hanno x_rata_pluriennale VERA
How can I change the domain of a field of a model from another model?
Ciao,
ti suggerisco di:
fare l'override di _onchange_product_id
modificare il domain restituito da super: domain = super(AccountInvoice, self)._onchange_product_id()
Resta informato
Informazioni sulla comunità
Strumenti di richiesta
Statistiche
Richiesta del: 08/03/20, 19:47 |
Vista: 1386 volte |
Ultimo aggiornamento: 09/03/20, 09:50 |
Entra in contatto diretto con la comunità.
Unisciti alla chat Discord.