Odoo Help

Welcome!

This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

1

Why _defaults is not working in model?

By
Tofiq Ahamad
on 3/7/13, 9:14 AM 1,406 views

the code i have written in the model is as follows...

from osv import osv
from osv import fields
class krunk_test(osv.osv):
    _name = 'krunk.test'

    _defaults = {
            'active': lambda *a: 1, # ideas are active by default
            'state':'draft', # ideas are in draft state by default
            }

    _columns = {
            'name': fields.char("Title", size=64, required=True, translate=True),
            'state': fields.selection([('draft','Draft'),('confirmed','confirmed')],"State", required=True, readonly=True),

    #Description is readonly  whn not draft!

            'description':fields.text('Description', readonly=True, states={'draft':[('readonly', False)]}),
            'active': fields.boolean('Active'),
            'invent_date': fields.date('Invent date')
            }

when I save the form it require "state" value. i have defined the value for "state" in _defaults. can anyone please tell me what's happening here? Thank you.

0

Nicolas Bessi

--Nicolas Bessi--
1590
| 5 7 8
Lausanne, Switzerland
--Nicolas Bessi--
Nicolas Bessi
On 3/7/13, 9:55 AM

Hello,

It is just a supposition, but maybe your field state is in your form view with a classical widget. As your fields is readonly when draft it may cause your trouble. Just try to remove states={'draft':[('readonly', False)] and tell me if it works.

Else some other points:

active statement in meaningless a record is active by default.

By convention _defaults is defined after _columns

Your _defaults seems to be correct it should work.

from openerp.osv import orm, fields

class KrunkTest(orm.Model): 

    _name = 'krunk.test'

    _columns = {'name': fields.char("Title", size=64, required=True, translate=True),
                'state': fields.selection([('draft', 'Draft'), ('confirmed', 'confirmed')],
                                          "State", required=True, readonly=True),

                'description': fields.text('Description', readonly=True, 
                                           states={'draft':[('readonly', False)]}),
                'active': fields.boolean('Active'),
                'invent_date': fields.date('Invent date')}

    _defaults = {'state': 'draft'} # ideas are in draft state by default

I can confirm that _default values only work if the related field is not readonly!

Andreas Brueckl
on 3/7/13, 10:09 AM

Cool, so do not forget to flag the answer as correct ;)

Camptocamp SA
on 3/7/13, 10:12 AM

If I want to accept it says that I cannot accept before March 14th :-). I think the original poster has to accept it

Andreas Brueckl
on 3/7/13, 10:15 AM
0
Tofiq Ahamad
On 3/7/13, 12:25 PM

i have removed the code states={'draft':[('readonly', False)] and now it's working i restarted the server and it works. but still not getting states={'draft':[('readonly', False)] what it is doing here?

The field "state" MUST NOT be readonly

Andreas Brueckl
on 3/7/13, 12:31 PM

'state': fields.selection([('draft','Draft'),('confirmed','confirmed')],"State", required=True),

AJ Schrafel Paper Corp
on 3/7/13, 1:44 PM

Andreas Brueck...._default values work either it is readonly or not !!

Tofiq Ahamad
on 3/8/13, 1:43 AM

You are making the entire column in the database read only, you need to make the field that is displayed to the user in the XML conditionally read only. You cannot define the field 'state' as read only when you declare it, that makes its it a read only field in the database, that nothing can change. You want to add your condition in the XML file that makes your field 'state' read only or not depending on other conditions.

AJ Schrafel Paper Corp
on 3/8/13, 10:57 AM

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

0 follower(s)

Stats

Asked: 3/7/13, 9:14 AM
Seen: 1406 times
Last updated: 5/16/16, 7:36 PM