Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
1 Trả lời
3098 Lượt xem

i have created a manytoone field in contact module to enter multiple address for customer now i want to add the field in pos session partner screen.
how should i do that? 
this is my current code.

 res_partner_adddress.py

from odoo import models, fields, api
from odoo.exceptions import ValidationError
import re


class PartnerAddress(models.Model):
_name = 'res.partner.address'
_description = 'Partner Address'
_sql_constraints = [
('unique_address_per_partner', 'UNIQUE(partner_id, address)', 'The address must be unique per partner.')
]

partner_id = fields.Many2one('res.partner', string='Partner', required=True, ondelete='cascade')
address = fields.Char(string='Address', required=True)
phone_number = fields.Char(string='Phone Number', required=True)
is_default = fields.Boolean(string='Is Default')

@api.constrains('is_default')
def _check_default_address(self):
for record in self:
if record.is_default:
default_addresses = self.search([
('partner_id', '=', record.partner_id.id),
('is_default', '=', True),
('id', '!=', record.id)
])
if default_addresses:
raise ValidationError('A partner can have only one default address.')

@api.constrains('phone_number')
def _check_phone_number(self):
for record in self:
if not record.phone_number:
raise ValidationError('Phone Number is required.')
if not re.match(r'^\d+$', record.phone_number):
raise ValidationError('Phone Number can contain only numbers.')


class ResPartner(models.Model):
_inherit = 'res.partner'

address_ids = fields.One2many('res.partner.address', 'partner_id', string='Addresses')


Ảnh đại diện
Huỷ bỏ
Tác giả

res_partner_view.xml

<odoo>
<record id="view_res_partner_form" model="ir.ui.view">
<field name="name">res.partner.form</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<notebook position="inside">
<page string="Delivery Addresses">
<field name="address_ids">
<tree editable="bottom">
<field name="address"/>
<field name="phone_number"/>
<field name="is_default"/>
</tree>
</field>
</page>
</notebook>
</field>
</record>

<record id="view_partner_address_tree" model="ir.ui.view">
<field name="name">res.partner.address.tree</field>
<field name="model">res.partner.address</field>
<field name="arch" type="xml">
<tree>
<field name="address"/>
<field name="phone_number"/>
<field name="is_default"/>
</tree>
</field>
</record>
</odoo>

Câu trả lời hay nhất

Hi,

Try this:

https://www.cybrosys.com/blog/how-to-load-models-and-fields-to-pos-in-odoo-17


Hope it helps

Ảnh đại diện
Huỷ bỏ
Tác giả

i have seen that and it did work fine as long as the field is single data type. but with one to many it didnt work i must be doing something wrong that is why i post my question here.

Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 1 25
980
1
thg 8 24
1005
0
thg 6 24
965
2
thg 1 25
801
1
thg 1 25
1646