تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
6 الردود
53037 أدوات العرض

Can anyone here knows about the UNLINK METHOD?? I have a button that needs to copy and update the data from the other fields.. Can someone here give an example of a UNLINK method on how does it works? thanks in advance..
 

الصورة الرمزية
إهمال

Here is a list with all the ORM methods you might ever need. This is also a good documentation source: https://doc.openerp.com/trunk/server/api_models/

أفضل إجابة

unlink method delete the record based on the given ID. Based on your requirement need to override copy Method.

unlink Method Example:-

Example 1: In button click call unlink method it will Delete records with given ids

                 self.unlink(cr, uid, ids, context=context)

Example 2: Sale Order:-  Allows to delete sales order lines in draft,cancel state only.

  def unlink(self, cr, uid, ids, context=None):
        if context is None:
            context = {}
        """Allows to delete sales order lines in draft,cancel states"""
        for rec in self.browse(cr, uid, ids, context=context):
            if rec.state not in ['draft', 'cancel']:
                raise osv.except_osv(_('Invalid Action!'), _('Cannot delete a sales order line which is in state \'%s\'.') %(rec.state,))
        return super(sale_order_line, self).unlink(cr, uid, ids, context=context)

 

الصورة الرمزية
إهمال
أفضل إجابة

Unlink method deals with the deletion of data based on condition.

@api.multi
def unlink(self):
for order in self:
if order.purchase_order:
raise UserError(_('You cannot Delete this record'))
return super(PurchasePerformance, self).unlink()
Here is a simple example of how to use unlink method if you do not want your record to be deleted.
For updation you will have to use write method

الصورة الرمزية
إهمال

The accepted answer is well-explained. But your answer shows what I need. Thanks

أفضل إجابة

Hi

Try this

https://doc.openerp.com/v6.0/developer/2_5_Objects_Fields_Methods/methods.html/

الصورة الرمزية
إهمال
أفضل إجابة
This works with Odoo 10.
    # DELETE POST
    # /[project]/admin/post/{menuId.id}/{post.id}/delete
    http.route(['/signage/admin/post/<model("signage.signage"):signage>/<model("signage.area.page"):page>/delete'],type='http', auth='user', website=True)
    def delete_postId (self, signage, page):
    #_logger.warn('<<<<<<<<<<<<<<<<<  signage = %s' % signage)
    #_logger.warn('<<<<<<<<<<<<<<<<<  postId = %s' % page)
   
page.unlink()
   
return werkzeug.utils.redirect('/signage/admin/menu/%s/edit' % signage.id)

https://github.com/vertelab/odoo-signage/blob/master10/signage/signage.py
الصورة الرمزية
إهمال
أفضل إجابة

In your class define the unlink method, this is called before deleting,
to see what happens I recommend doing this within your class

def unlink(self):
    print('-----------------------LLamada a unlink address')
    print(self)
    return super(youclassname, self).unlink()

الصورة الرمزية
إهمال