Hỏi Đáp

Welcome!

This community is for professionals and enthusiasts of our products and services.
Share and discuss the best content and new marketing ideas, build your professional profile and become a better marketer together.

0

Edit lại module

Ảnh đại diện
david

Chào ACE,
Mình đang edit lại module account_aset

trong file account_aset.py mình thêm 1 method onchange_thu. Method này có chức năng khi chọn 1 loại từ account.aset.category sẽ tự động gán tên của category đó cho 1 thuộc tính cho asset.
Tuy nhiên, khi đã thêm method đó trong file py, sửa lại file view.xml, upgarde lại module. Khi chạy thì chương trình báo lỗi như sau:

Client Traceback (most recent call last):
  File "/opt/openerp/server/openerp/addons/web/http.py", line 204, in dispatch
    response["result"] = method(self, **self.params)
  File "/opt/openerp/server/openerp/addons/web/controllers/main.py", line 1121, in call_kw
    return self._call_kw(req, model, method, args, kwargs)
  File "/opt/openerp/server/openerp/addons/web/controllers/main.py", line 1113, in _call_kw
    return getattr(req.session.model(model), method)(*args, **kwargs)
  File "/opt/openerp/server/openerp/addons/web/session.py", line 42, in proxy
    result = self.proxy.execute_kw(self.session._db, self.session._uid, self.session._password, self.model, method, args, kw)
  File "/opt/openerp/server/openerp/addons/web/session.py", line 30, in proxy_method
    result = self.session.send(self.service_name, method, *args)
  File "/opt/openerp/server/openerp/addons/web/session.py", line 103, in send
    raise xmlrpclib.Fault(openerp.tools.ustr(e), formatted_info)


Server Traceback (most recent call last):
  File "/opt/openerp/server/openerp/addons/web/session.py", line 89, in send
    return openerp.netsvc.dispatch_rpc(service_name, method, args)
  File "/opt/openerp/server/openerp/netsvc.py", line 292, in dispatch_rpc
    result = ExportService.getService(service_name).dispatch(method, params)
  File "/opt/openerp/server/openerp/service/web_services.py", line 626, in dispatch
    res = fn(db, uid, *params)
  File "/opt/openerp/server/openerp/osv/osv.py", line 188, in execute_kw
    return self.execute(db, uid, obj, method, *args, **kw or {})
  File "/opt/openerp/server/openerp/osv/osv.py", line 131, in wrapper
    return f(self, dbname, *args, **kwargs)
  File "/opt/openerp/server/openerp/osv/osv.py", line 197, in execute
    res = self.execute_cr(cr, uid, obj, method, *args, **kw)
  File "/opt/openerp/server/openerp/osv/osv.py", line 185, in execute_cr
    return getattr(object, method)(cr, uid, *args, **kw)
AttributeError: 'account_asset_asset' object has no attribute 'onchange_thu'

Mong ACE giúp mình với
Ảnh đại diện
Huỷ
1 Trả lời
0
Ảnh đại diện
Leo Tran
Best Answer

@david,

Bạn có thể paste code xml khai báo hàm on_change lên đây được không?

2 Bình luận
Ảnh đại diện
Huỷ
Ảnh đại diện
ViindooBot
-

Hi Leo Tran,
Mình mất hết 2 ngày mới xử lý xong chuyện này. Lý do: do mình ngồi ở nhà làm, sau đó gửi file lên server để upgrade module nhưng không restart lại server.
Mình cứ nghĩ chỉ cần restart lại service openerp là ok nhưng không hiểu sao phải restart lại server thì nó mới chịu upgrade Hic hic

Ảnh đại diện
ViindooBot
-

Dễ hiểu thôi bạn.

Dữ liệu trong file xml, Odoo (OpenERP) sẽ lưu vào database. Do dó bạn cần upgrade lại module để nó edit lại dữ liệu.

Đối với những thay đổi trong code python thì nó cần phải combine lại. Do đó bạn cần restart service (để nó combine lại)

Trong trường hợp của bạn, vì bạn bổ sung thêm method trong python, nên bạn cần restart service (nếu bạn không restart nó ko combine lại nên vẫn nhận code python cũ)

Trả lời của bạn

Vui lòng đảm bảo câu trả lời của bạn có liên quan và giải đáp đúng nội dung câu hỏi. Nếu muốn bình luận về câu hỏi hoặc câu trả lời, hãy sử dụng công cụ Bình luận. Lưu ý, bạn có thể thay đổi nội dung trả lời thay vì trả lời lại 02 lần cho cùng một câu hỏi. Đồng thời bạn có thể nhấn nút để bầu chọn câu hỏi / câu trả lời tốt nhất.