İçereği Atla
Menü
Bu soru işaretlendi
1 Cevapla
33402 Görünümler

Hi, i am a newbie in odoo programming. I got this warning when creating  a One2many field relation, where I took the data from the Many2one field in the same model. 

Here is my custom code:

class ReferInherit(models.Model):
_inherit = 'qc.inspection'

reference_line = fields.One2many('qc.inspection', 'picking', readonly=False, store=True)

and I took the data from here:

class QcInspection(models.Model):
_inherit = 'qc.inspection'

@api.multi
@api.depends('object_id')
def _compute_picking(self):
for inspection in self:
inspection.picking = False
if inspection.object_id:
if inspection.object_id._name == 'stock.move':
inspection.picking = inspection.object_id.picking_id
elif inspection.object_id._name == 'stock.picking':
inspection.picking = inspection.object_id
elif inspection.object_id._name == 'stock.pack.operation':
inspection.picking = inspection.object_id.picking_id
    picking = fields.Many2one(comodel_name="stock.picking", compute="_compute_picking", store=True)

When I run it, I got this Warning:

The operation cannot be completed: another model requires the record being deleted. If possible, archive it instead.
Model: Quality control inspection (qc.inspection), Constraint: qc_inspection_picking_fkey

what's wrong with my code? and how to solve it? Sorry for my bad english and Thanks before.


Avatar
Vazgeç
Üretici

Hi, Kanakinfosystems

Thanks for your answer.

This is very helpful. Your answer is so inspiring for me. Thanks a lot:)

En İyi Yanıt

Hi Ahmad,

Please see below code example for correct implementation of One2many relational field.

class QcInspection(models.Model):
    _name = 'qc.inspection'

    line_ids = fields.One2many(comodel_name='qc.inspection.line', inverse_name='inspection_id', string='Lines')

class QcInspectionLine(models.Model):
   _name = 'qc.inspection.line'

   inspection_id = fields.Many2one('comodel_name='qc.inspection', string="Inspection", ondelet="cascade")

Note:  Inverse field should not be computed, as per your code you are trying to compute value of picking fields.

Thanks.


Avatar
Vazgeç
İlgili Gönderiler Cevaplar Görünümler Aktivite
3
Ara 17
4102
1
Tem 19
13602
0
Nis 17
6706
1
Mar 23
2250
0
Ara 22
2894