one2many và many2one

Thảo luận trong 'OpenERP Framework' bắt đầu bởi To Trong Danh, 7/5/13.

  1. To Trong Danh New Member

    Em tạo 2 table "school" và "grade". "school" có nhiều "grade".
    Mã python của em thế này
    school.py
    'grade_id':fields.one2many('grade', 'school_id', 'Lớp'),

    grade.py
    'school_id':fields.many2one('school','Trường'),

    nếu
    __init__.py
    import school
    import grade

    lỗi: 'school' object has no attribute '_obj'
    nếu em đổi thứ tự
    __init__.py
    import grade
    import school
    thì không bị lổi

    Tại sao vậy?
  2. xuanlapd New Member

    Mã (text):
    1. __init__.py
    2. import school
    3. import grade
    Ở đây bạn để ý khi import thì nó sẽ import school trước, và sẽ khởi tạo luôn trường grade_id, trong trường grade_id có quan hệ với table grade thông qua school_id. Nhưng ở đây trường school_id của bạn chưa được khởi tạo nên nó sẽ báo lỗi
    Mã (text):
    1. __init__.py
    2. import grade
    3. import school
    Ở đây thì trường school_id đã được khởi tạo rồi nên sẽ không còn báo lỗi.

    Mong giúp đỡ được bạn. Thân
    admin and tanvhn88 like this.
  3. thinhgr Active Member

    Ngôn ngữ Python là thông dịch, dịch tới đâu chạy tới đó nên nó chạy tới row 2 nó kiếm không thấy là báo lỗi liền. Nó khác với biên dịch là dịch hết rùi mới chạy.
    bruce.nguyen and admin like this.
  4. To Trong Danh New Member

    Thank thinhgr và xuanlapd!
    --- merged: May 7, 2013 5:30 PM ---
    Thank thinhgr và xuanlapd!
  5. bruce.nguyen Active Member

    Dear thingr: chính xác, với python thì chạy tới đâu dịch tới đó.
    Dear xuanlap: file 1 many2one tới file 2, nếu em import 1 trước thì bị bug, vì 1 running nó gọi 2, mà 2 chưa thấy đâu cả.
    xuanlapd thích bài này.

Chia sẻ trang này