Hỏi bác nào pro về openerp giúp em tý

Thảo luận trong 'Hỏi - Đáp' bắt đầu bởi xipo55, 17/6/15.

  1. xipo55 New Member

  2. Bạn thêm trường _inherit vô chổ khai báo object là được. Chú ý, nếu muốn tạo 1 object mới và inherit object có sẵn thì khai báo _name <> _inherit là được
    VD:
    Mã (text):
    1. class phuongthuctinhtien_B
    2. _name='tinhtien.tinhtienB'
    3. _inherit = 'tinhtien.tinhtien'
    bạn có thể tham khảo thêm ở ĐÂY
  3. xipo55 New Member

    Mã (text):
    1. class quanly (osv.osv):
    2.     _name='quanly.quanly'
    3.     _inherit = 'thue.thue'
    4.     _columns = {
    5.         #cac thuoc tinh cua lop
    6.         'name':fields.char('Hoc phan', size=25, required=True,select=True, readonly=True),
    7.         'tinchi':fields.integer('Tin chi',required=True,),
    8.         'hocphantienquyet':fields.many2many('quanly.quanly','hocphan_hocphantq_rel','hocphanid','hocphantqid','Hoc Phan tien quyet'),
    9.         'thue_thue':fields.many2one('thue.thue',' Thue ',required=True),
    10.     }
    TypeError: The model "quanly.quanly" specifies an unexisting parent class "thue.thue"
    You may need to add a dependency on the parent class' module.

    lỗi này là sao vậy
  4. Khi ban inherit tu mot class khac thi ban ko khai bao dong _name ='quanly.quanly', ban xoa dong khai bao nay la dc:)
  5. xipo55 New Member

    cho em hỏi thêm cái .nếu không có name class khác muốn gọi lại class này thì làm như thế nào.
  6. Em gọi từ class em đã interit là Ok thôi :)
  7. Theo mình thì nếu muốn bổ sung, sửa 1 class có sẵn thì mới ko khai báo _name chứ nhỉ? Còn nếu tạo 1 class mới (tạo table mới trong db) inherit từ 1 class đã có thì phải để _name.
    Theo mình trường hợp bạn kia bị lỗi là chưa add dependency trong file __openerp__.py
  8. Cuu Nguyen New Member

    Bác này nói đúng rồi, add depends là dùng được :)
  9. Leo Tran Active Member

    Không phải là không khai báo _name khi inherit mà tùy vào mục đích sử dụng. Khi inherit mà bạn dùng _name nghĩa là hệ thống sẽ tạo ra 1 model riêng (table riêng) bao gồm toàn bộ thuộc tính (cột) và phương thức của class cha. Bạn có thể bổ sung thêm cột và phương thức. Nếu không sử dụng _name, nghĩa là bạn sử dụng chính model cha (table cha) và chỉ bổ sung thêm cột vào table cha chứ không tạo ra model (table) riêng.

Chia sẻ trang này