Hi all,
I get this Error Message:
vlabel(<NewId 0x7fa1c8069a90>,).product_value
when trying to create a new "product" in my custom module. Any help is appreciated.
See the code here:
sequence.xml
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Sequences for sale.order -->
<record id="seq_vlabel_product" model="ir.sequence">
<field name="name">Product Sequence</field>
<field name="code">vlabel.product.sequence</field>
<field name="prefix">V</field>
<field name="padding">5</field>
<field name="company_id" eval="False"/>
</record>
</data>
</odoo>
label_products.py
# -*- coding: utf-8 -*-
from odoo import models, fields, api, _
from odoo.exceptions import ValidationError
class VLabel(models.Model):
_name = 'vlabel'
_inherit = ['mail.thread.cc', 'mail.activity.mixin']
_rec_name = 'product_name'
@api.constrains('product_fee')
def check_fee(self):
for rec in self:
if rec.product_fee < 68:
raise ValidationError(_('The Price must be at least 68 €'))
@api.depends('product_fee')
def set_value_group(self):
for rec in self:
if rec.product_fee:
if rec.product_fee <= 250:
rec.product_value = 'decent'
else:
rec.product_value = 'great'
product_name = fields.Char(string='Name', required = True)
product_category = fields.Selection([
('vegan', 'Vegan'),
('vegetarian', 'Vegetarian'),
], string="Category")
product_fee = fields.Integer('Price', track_visibility="always")
product_creator = fields.Char(string='Creator')
product_sequence = fields.Char(string='Order Reference', required=True, copy=False, readonly=True,
index=True, default=lambda self: _('New'))
product_value = fields.Selection([
('great', 'Great'),
('decent', 'Decent'),
], string="Value", compute='set_value_group')
@api.model
def create(self, vals):
if vals.get('product_sequence', _('New')) == _('New'):
vals['product_sequence'] = self.env['ir.sequence'].next_by_code('vlabel.product.sequence') or _('New')
result = super(VLabel, self).create(vals)
return result
label_products_view.xml
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Add Search View-->
<record id="label_product_search_view" model="ir.ui.view">
<field name="name">product_search_view</field>
<field name="model">vlabel</field>
<field name="arch" type="xml">
<search string="Search Products">
<field name="product_category" filter_domain="['|', ('product_name','ilike',self), ('product_sequence','ilike',self)]"/>
<field name="product_name"/>
<field name="product_sequence"/>
<!-- Added Filter-->
<separator/>
<filter name="vegetarian" string="Vegetarian" domain="[('product_category','=','vegetarian')]"/>
<filter name="vegan" string="Vegan" domain="[('product_category','=','vegan')]"/>
<!-- Added Group-->
<group string="Group By" expand="0">
<filter string="Category" name="product_category" context="{'group_by':'product_category'}" />
</group>
</search>
</field>
</record>
<!-- Product Form View -->
<record id="vlabel_view" model="ir.ui.view">
<field name="name">vlabel.form.view</field>
<field name="model">vlabel</field>
<field name="arch" type="xml">
<form>
<sheet>
<div class="oe_title">
<h1>
<field name="product_sequence" readonly="1"/>
</h1>
</div>
<group string="Product Information">
<group>
<field name="product_name"/>
<field name="product_category" widget="radio"/>
</group>
<group>
<field name="product_fee"/>
<field name="product_creator"/>
</group>
<group>
<field name="product_value"/>
<field name="product_sequence"/>
</group>
</group>
</sheet>
<!-- Chatter View -->
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="activity_ids" widget="mail_activity"/>
<field name="message_ids" widget="mail_thread" options="{'post_refresh': 'recipients'}"/>
</div>
</form>
</field>
</record>
<!-- Product Tree View -->
<record id="label_tree_view" model="ir.ui.view">
<field name="name">label.tree.view</field>
<field name="model">vlabel</field>
<field name= "arch" type = "xml">
<tree string="Product Information">
<field name="product_name"/>
<field name="product_category"/>
<field name="product_value"/>
<field name="product_fee"/>
<field name="product_sequence"/>
<field name="product_creator"/>
</tree>
</field>
</record>
<record id="action_product" model="ir.actions.act_window">
<field name="name">Product</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">vlabel</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem id="vlabel_root" name = 'V-Label' sequence = '0'/>
<menuitem id="vlabel_product" name = "Product" parent = 'vlabel_root' action = 'action_product'/>
</odoo>
push
Do you really mean to override the create method?
Hm, I basically followed this tutorial https://www.youtube.com/watch?v=Mg80GxrKDOc&list=PLqRRLx0cl0hoJhjFWkFYowveq2Zn55dhM&index=11 and the error kept occuring after adding the compute function. I am very new to this so I am not entirely sure if I meant what I did
In any case, i gave default value for product_fee 1 which helped, so i guess I'm good