Skip to Content
Odoo Menu
  • Log ind
  • Prøv gratis
  • Apps
    Økonomi
    • Bogføring
    • Fakturering
    • Udgifter
    • Regneark (BI)
    • Dokumenter
    • e-Signatur
    Salg
    • CRM
    • Salg
    • POS Butik
    • POS Restaurant
    • Abonnementer
    • Udlejning
    Hjemmeside
    • Hjemmesidebygger
    • e-Handel
    • Blog
    • Forum
    • LiveChat
    • e-Læring
    Forsyningskæde
    • Lagerbeholdning
    • Produktion
    • PLM
    • Indkøb
    • Vedligeholdelse
    • Kvalitet
    HR
    • Medarbejdere
    • Rekruttering
    • Fravær
    • Medarbejdersamtaler
    • Anbefalinger
    • Flåde
    Marketing
    • Markedsføring på sociale medier
    • E-mailmarketing
    • SMS-marketing
    • Arrangementer
    • Automatiseret marketing
    • Spørgeundersøgelser
    Tjenester
    • Projekt
    • Timesedler
    • Udkørende Service
    • Kundeservice
    • Planlægning
    • Aftaler
    Produktivitet
    • Dialog
    • Godkendelser
    • IoT
    • VoIP
    • Vidensdeling
    • WhatsApp
    Tredjepartsapps Odoo Studio Odoo Cloud-platform
  • Brancher
    Detailhandel
    • Boghandel
    • Tøjforretning
    • Møbelforretning
    • Dagligvarebutik
    • Byggemarked
    • Legetøjsforretning
    Mad og værtsskab
    • Bar og pub
    • Restaurant
    • Fastfood
    • Gæstehus
    • Drikkevareforhandler
    • Hotel
    Ejendom
    • Ejendomsmægler
    • Arkitektfirma
    • Byggeri
    • Ejendomsadministration
    • Havearbejde
    • Boligejerforening
    Rådgivning
    • Regnskabsfirma
    • Odoo-partner
    • Marketingbureau
    • Advokatfirma
    • Rekruttering
    • Audit & certificering
    Produktion
    • Tekstil
    • Metal
    • Møbler
    • Fødevareproduktion
    • Bryggeri
    • Firmagave
    Heldbred & Fitness
    • Sportsklub
    • Optiker
    • Fitnesscenter
    • Kosmetolog
    • Apotek
    • Frisør
    Håndværk
    • Handyman
    • IT-hardware og support
    • Solenergisystemer
    • Skomager
    • Rengøringsservicer
    • VVS- og ventilationsservice
    Andet
    • Nonprofitorganisation
    • Miljøagentur
    • Udlejning af billboards
    • Fotografi
    • Cykeludlejning
    • Softwareforhandler
    Gennemse alle brancher
  • Community
    Få mere at vide
    • Tutorials
    • Dokumentation
    • Certificeringer
    • Oplæring
    • Blog
    • Podcast
    Bliv klogere
    • Udannelselsesprogram
    • Scale Up!-virksomhedsspillet
    • Besøg Odoo
    Få softwaren
    • Download
    • Sammenlign versioner
    • Udgaver
    Samarbejde
    • Github
    • Forum
    • Arrangementer
    • Oversættelser
    • Bliv partner
    • Tjenester til partnere
    • Registrér dit regnskabsfirma
    Modtag tjenester
    • Find en partner
    • Find en bogholder
    • Kontakt en rådgiver
    • Implementeringstjenester
    • Kundereferencer
    • Support
    • Opgraderinger
    Github Youtube Twitter LinkedIn Instagram Facebook Spotify
    +1 (650) 691-3277
    Få en demo
  • Prissætning
  • Hjælp

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Bogføring
  • Lager
  • PoS
  • Projekt
  • MRP
All apps
Du skal være registreret for at interagere med fællesskabet.
All Posts People Emblemer
Tags (View all)
odoo accounting v14 pos v15
Om dette forum
Du skal være registreret for at interagere med fællesskabet.
All Posts People Emblemer
Tags (View all)
odoo accounting v14 pos v15
Om dette forum
Hjælp

The _name attribute StockQuant is not valid

Tilmeld

Få besked, når der er aktivitet på dette indlæg

Dette spørgsmål er blevet anmeldt
stock
2 Besvarelser
2229 Visninger
Avatar
Jesus Ramon

Hello,

I am trying to install my custom module that extends the stock.quant model. However, when I attempt to install it, I get the following error:

ValueError: The _name attribute Applicant is not valid.


This error appears during module installation and prevents the module from installing properly.
Other modules that extend stock.quant using _inherit work fine.

This is my code:

from odoo import models, fields, api


class StockQuant(models.Model):# Importante: mismo nombre para extender

_name = 'stock.quant' # REQUERIDO para herencia múltiple

_inherit = ['stock.quant', 'mail.thread', 'mail.activity.mixin'] # Herencia múltiple para chatter y actividades

_mail_post_access = 'read'


has_comments = fields.Boolean(

string='Comentarios',

compute='_compute_has_comments',

store=True,

help='Indica si el ajuste tiene comentarios',

)

inventory_quantity = fields.Float(

string='Cantidades contadas',

digits='Product Unit of Measure',

help='Cantidad contada durante el inventario físico',

default=0.0,

)


@api.depends('message_ids')

def _compute_has_comments(self):

"""Computar si tiene comentarios"""

for record in self:

# Filtrar solo mensajes de usuarios (no notificaciones del sistema)

user_messages = record.message_ids.filtered(

lambda m: m.message_type in ('comment', 'email')

)

record.has_comments = bool(user_messages)


def message_post(self, **kwargs):

"""Override para forzar recálculo después de añadir mensaje"""

result = super().message_post(**kwargs)

# Forzar recálculo inmediato

self.sudo()._compute_has_comments()

return result


def action_open_quant_form_modal(self):

self.ensure_one()

action = self.env.ref('stock_quant_comments.action_stock_quant_with_chatter').sudo().read()[0]

action.update({

'res_id': self.id,

'name': 'Comentarios - ' + self.product_id.name,

})

return action



class MailMessage(models.Model):

_inherit = 'mail.message'


def unlink(self):

"""Override para recalcular has_comments cuando se eliminan mensajes"""

# Recopilar todos los stock.quant afectados ANTES de eliminar

affected_quants = self.env['stock.quant']

for message in self:

if message.model == 'stock.quant' and message.res_id:

try:

quant = self.env['stock.quant'].browse(message.res_id)

if quant.exists():

affected_quants |= quant

except Exception:

pass # Ignorar errores de acceso

# Ejecutar eliminación normal

result = super().unlink()

# Recalcular después de eliminar

if affected_quants:

try:

affected_quants.sudo()._compute_has_comments()

# Forzar commit para asegurar que se guarde

self.env.cr.commit()

except Exception:

pass # Ignorar errores y continuar

return result




0
Avatar
Kassér
Avatar
Jesus Ramon
Forfatter Bedste svar

.

0
Avatar
Kassér
Avatar
Cybrosys Techno Solutions Pvt.Ltd
Bedste svar

Hi,

In Odoo, when you want to extend an existing model like stock.quant, you must not redefine _name unless you are intentionally creating a new model with the same technical name. Mixing _name and _inherit in this way causes Odoo to treat your class as a new model named stock.quant, rather than as an extension of the existing one. To correctly extend stock.quant, remove the _name line entirely and use _inherit.


Please refer to the code below:

from odoo import models, fields, api

class StockQuant(models.Model):
_inherit = 'stock.quant'

has_comments = fields.Boolean(
string='Comentarios',
compute='_compute_has_comments',
store=True,
help='Indica si el ajuste tiene comentarios',
)
# Your custom fields and codes


Hope it helps.

0
Avatar
Kassér
Jesus Ramon
Forfatter

Hi, "Hi, I already tried removing the _name line and leaving only the following line:

_inherit = ['stock.quant', 'mail.thread', 'mail.activity.mixin']

But I'm still getting the same error: The _name attribute StockQuant is not valid.
I even tried installing it on a fresh Odoo 18 instance where the module had never been installed before, and I'm still getting the same error. Why is that? Could it be because I'm inheriting from multiple models in _inherit? Is there another way to define them? Thank you for your response!"

Enjoying the discussion? Don't just read, join in!

Create an account today to enjoy exclusive features and engage with our awesome community!

Tilmeld dig
Related Posts Besvarelser Visninger Aktivitet
Inventory Valuation Odoo 15
stock
Avatar
Avatar
1
okt. 25
1628
Why Inventory Defaults -- Warehouse not showing as selected ?
stock
Avatar
Avatar
1
okt. 25
623
Force the creation of a new product when a package arrives
stock
Avatar
Avatar
Avatar
2
sep. 25
804
I was able to confirm a Delivery of product that was still being manufactured
stock
Avatar
Avatar
1
aug. 25
776
N/A
stock
Avatar
0
jul. 25
354
Community
  • Tutorials
  • Dokumentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Oversættelser
Tjenester
  • Odoo.sh-hosting
  • Support
  • Opgradere
  • Individuelt tilpasset udvikling
  • Uddannelse
  • Find en bogholder
  • Find en partner
  • Bliv partner
Om os
  • Vores virksomhed
  • Brandaktiver
  • Kontakt os
  • Stillinger
  • Arrangementer
  • Podcast
  • Blog
  • Kunder
  • Juridiske dokumenter • Privatlivspolitik
  • Sikkerhedspolitik
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo er en samling open source-forretningsapps, der dækker alle dine virksomhedsbehov – lige fra CRM, e-handel og bogføring til lagerstyring, POS, projektledelse og meget mere.

Det unikke ved Odoo er, at systemet både er brugervenligt og fuldt integreret.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now