2017-03-19 3 views
0

へのV8からは、私はこのクラスを持っている:私は、メニュー項目からurl3をクリックするとKeyError例外: 'url_ids' - Odooモジュールmrigation V10コミュニティ

class WizardUrlSeniat(models.TransientModel): 

_name = "wizard.seniat.url" 

url1 = fields.Char(
    string='URL1', size=255, required=True, readonly=False, 
    default=lambda s: s._get_url1(), 
    help='In this field enter the URL from Seniat for search the' 
    ' fiscal information from partner') 
url2 = fields.Char(
    string='URL2', size=255, required=True, readonly=False, 
    default=lambda s: s._get_url2(), 
    help='In this field enter the URL from Seniat for search the' 
    ' retention rate from partner (RIF)') 
url3 = fields.Char(
    string='URL3', size=255, required=True, readonly=False, 
    default=lambda s: s._get_url3(), 
    help='In this field enter the URL from Seniat for search the' 
    ' retention rate from partner (CI or Passport)') 

@api.multi 
def _get_url(self): 
    """ Get seniat web page 
    """ 
    url = self.env['seniat.url'] 
    url_ids = url.search([]) 
    if len(url_ids) > 1: 
     url.unlink.self.env.url_ids[1:] 
    url_obj = self.env['url_ids'].browse() 
    return url_obj 

@api.multi 
def _get_url1(self): 
    url_obj = self._get_url() 


@api.multi 
def _get_url2(self): 
    url_obj = self._get_url() 
    return url_obj.url_seniat 

@api.multi 
def _get_url3(self): 
    url_obj = self._get_url() 
    return url_obj.url_seniat2 

、それは私にこれをスロー:

Traceback (most recent call last): 
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 638, in _handle_exception 
return super(JsonRequest, self)._handle_exception(exception) 
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 675, in dispatch 
result = self._call_function(**self.params) 
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 331, in _call_function 
return checked_call(self.db, *args, **kwargs) 
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/service/model.py", line 119, in wrapper 
return f(dbname, *args, **kwargs) 
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 324, in checked_call 
result = self.endpoint(*a, **kw) 
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 933, in __call__ 
return self.method(*args, **kw) 
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 504, in response_wrap 
response = f(*args, **kw) 
File "/home/kristian/odoov10/odoo-10.0rc1c-20161005/odoo/addons/web/controllers/main.py", line 862, in call_kw 
return self._call_kw(model, method, args, kwargs) 
File "/home/kristian/odoov10/odoo-10.0rc1c-20161005/odoo/addons/web/controllers/main.py", line 854, in _call_kw 
return call_kw(request.env[model], method, args, kwargs) 
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/api.py", line 679, in call_kw 
return call_kw_model(method, model, args, kwargs) 
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/api.py", line 664, in call_kw_model 
result = method(recs, *args, **kwargs) 
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/models.py", line 1101, in default_get 
defaults[name] = field.default(self) 
File "/home/kristian/odoov10/gilda/l10n_ve_fiscal_requirements/wizard/wizard_url_seniat.py", line 41, in <lambda> 
default=lambda s: s._get_url3(), 
File "/home/kristian/odoov10/gilda/l10n_ve_fiscal_requirements/wizard/wizard_url_seniat.py", line 69, in _get_url3 
url_obj = self._get_url() #(self.env.cr) 
File "/home/kristian/odoov10/gilda/l10n_ve_fiscal_requirements/wizard/wizard_url_seniat.py", line 53, in _get_url 
url_obj = self.env['url_ids'].browse() 
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/api.py", line 752, in __getitem__ 
return self.registry[model_name]._browse((), self) 
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/modules/registry.py", line 170, in __getitem__ 
return self.models[model_name] 
KeyError: 'url_ids' 

エラーは正確にdefault=lambda s: s._get_url3(),url3フィールドです。 オンurl_obj = self._get_url()_get_url3()、およびurl_obj = self.env['url_ids'].browse()第1の方法_get_url

これはv8からv10に移行しているモジュールですが、ほぼ完成していますが、ここには見当たらないものがあります。

アイデア?

答えて

0

url_obj = self.env['url_ids'].browse() 

url_idsあるもの、それはいくつかのモデル名である場合、それがあるべきように、それは(それが重要ではないということ)ドット規約に従うべきではありませんurl.idsと覚えておいてくださいself.envはキーとしてモデル名をとります。

あなたはここから検索して取得url_ids閲覧しようとしている場合:

url = self.env['seniat.url'] 
url_ids = url.search([]) 

をあなたが行う必要があります。それらのurl_idsのブラウズレコードを返します

browse_records = self.env['seniat.url'].browse(url_ids) 

+0

超素晴らしい!ありがとう:D – NeoVe

+0

申し訳ありませんが、それは間違っています。 'search'は' RecordSet'を返しています(新しいAPIに 'browse_record'sはもうありません!)。すでに検索後にbrowseを呼び出す必要はありません。 – CZoellner

2

オブジェクト 'url_ids'がモジュールで正しく定義されているかどうかを確認してください。そのオブジェクトを参照しようとすると、その投げエラーが発生します。

これが役に立ちます。あなたのコードのこの行の

関連する問題