2016-02-01 9 views
1

В моем пользовательском модуле Odoo мне нужно вызвать функцию python при нажатии кнопки. Я следовал точно так же, как в документах. Но я получил ошибку следующим образом .. AttributeError: 'book.meeting' object has no attribute 'checkout_function'AttributeError: объект не имеет атрибута

Мой код выглядит следующим образом ..

class BookMRoom(models.Model): 
_name="book.meeting" 



name=fields.Char(string="Enter booking person name",required=True) 
company_name=fields.Many2one('res.company','Enter your company name',required=True) 
start_time=fields.Datetime(string="Starting date",select=True,required=True) 
end_time=fields.Datetime(string="Ending date",select=True) 
meeting_room=fields.Many2one('mroom', 'select the room',required=True) 
room_info=fields.Many2one(comodel_name='mroom', field='description') 
amenities=fields.Many2one('mroom','Select amenities') 
ob =fields.Many2one('mroom') 

@api.multi 
def checkout_function(self,cr,uid,ids,context=None): 
    #raise Exception('Coming Inside Checkout Function') 
    current_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S') 
    self.end_time=current_time 
    meeting_obj=self.env['mroom'] 
    meeting_room.status='available' 
    return meeting_room.status 

Мой XML-файл ..

<record model="ir.ui.view" id="book-form"> 
    <field name="name">book.meeting.form</field> 
    <field name="model">book.meeting</field> 
    <field name="type">form</field> 
    <field name="arch" type="xml"> 
<form string="booking_view_form"> 
     <sheet string="Book meeting room"> 
      <label for="name" string="Booking person name"/>  
      <h1> 
      <field name="name" placeholder="Booking person" class="oe_inline" string="Booking person"/> 
      </h1> 
      <group> 
      <group> 
       <field name="company_name" string="Company name"/> 

       <field name="meeting_room" string="select a room" options="{'no_quick_create':True,'no_create_edit':True}"/> 
      </group> 
      <group> 
     <field name="start_time" string="Booked date"/> 
     <field name="end_time" string="Ending date" help="Give check out time after the usage of room" disable="True"/> 
     <button string="Check Out" name='checkout_function' type="object"/> 
      </group> 
      </group> 
     <notebook> 
      <page string="Room description"> 
       <field name="room_info"/> 
      </page> 
      <page string="Amenities of the room"> 
      </page> 
     </notebook> 
     </sheet> 
    </form> 
    </field> 
</record> 

<record model="ir.actions.act_window" id="booking_action"> 
    <field name="name">Book meeting room</field> 
    <field name="res_model">book.meeting</field> 
    <field name="view_type">form</field> 
    <field name="view_mode">tree,form</field> 
    <field name="view_id" ref="book-tree"/> 
    <field name="help" type="html"> 
      <p>To book a meeting room click create</p> 
</field> 
</record> 

Может кто-нибудь мне помочь?

+0

вы checkout_function это метод класса, я думаю, что вы забыли отступы – tinySandy

+0

Если отступы не является правильным, оно будет показано, что тип ошибки. Но у меня никогда не было такой ошибки. –

+0

ОК, позвольте мне объяснить это более ясно, нет такого метода checkout_function в классе – tinySandy

ответ

4

В вашем случае в основном проблема возникает из-за того, что вы не обновили свой настраиваемый модуль должным образом и, возможно, не должны перезапускать сервер-оду с формой терминала после создания вашего метода.

Вторая точка важна для вашего слуха cr,uid,ids,context=None, используя аргументы метода, которые не нужны для этого в новом методе декоратора API в вашей модели (классе).

попробуйте проверить перезагрузку сервера odoo, а затем проверить влияние этого действия модуля.

Я надеюсь, что мой ответ может полезно для вас :)

+0

Ваш ответ был полезен. Спасибо –

+0

@AKHIL MATHEW Happy to help :) :) –