콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
4 답글
4846 화면

I have been able to create a model with a sequence code that successfully generates when I create a record directly from the model's view. However, attempting to do the same from a One2many tree view fails to generate the code which in turn does not allow a user to create the record.


Create function:

    def create(self, vals):
obj = super(Beneficiary,self).create(vals)
if obj.code == _("New"):
number = self.env["ir.sequence"].get('beneficiary') or _("New")
obj.write({'code':number})

return obj

Tree Definition:

<page string="Beneficiaries">
<field name="beneficiary_training" nolabel="1">
<tree string="Beneficiaries">
<field name="code"/>
<field name="id_number"/>
<field name="number"/>
</tree>
</field>
</page>



아바타
취소
작성자

I am using Odoo Version 13

Did you set a default value for code? How? You can do this via the one2many field context attribute. See how we do it for the invoice_line_ids field on an Invoice. We define a default partner_id to populate on each journal item order_id to each line. context="{'default_partner_id': commercial_partner_id}"

작성자

Hey @Ray. Yes, I've used a default in code as shown below:

code = fields.Char(

string="Beneficiary No.",

required=True,

default=lambda self: _("New"),

track_visibility="onchange",

copy=False,

help="ID used for internal beneficiary tracking tracking.")

I'm not looking to use a default code, the goal is that one can create a new record through a one2many tree and the sequence numbers will continue generating in the same order.

베스트 답변

The sequence will be created as soon as you click on the Save button of the main record.

I think you are expecting to have the sequence when you add a line in o2m without clicking on the Save button. If yes, you should use the onchange method or set as default (as Ray said) to set the sequence.

아바타
취소
작성자

Thanks @Sudhir. Grateful for the help.

관련 게시물 답글 화면 활동
1
1월 25
1845
2
9월 22
9596
2
4월 22
4639
0
7월 21
7285
1
3월 21
5021