簡體   English   中英

如何在看板視圖 Odoo10 中顯示 static state 值?

[英]How to show static state values in kanban view Odoo10?

我有state歸檔,這是一個Selection字段。 我想在kanban視圖中根據這個state字段對記錄進行分組。

這是我的代碼:

* .py

  state = fields.Selection([('draft','Draft'),('process','Processing')
        ,('intransit','In-transit'),('done','Delivered'),('cancel','Canceled')],
        default="draft",string="Status", track_visibility="onchange",
        group_expand='_expand_states',index=True)

  @api.model
  def _expand_states(self, states, domain, order):
      return [key for key, val in type(self).state.selection]

但我收到此錯誤:

> Traceback (most recent call last):
  File "/home/user/Projects/odoo-10/odoo/http.py", line 642, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/home/user/Projects/odoo-10/odoo/http.py", line 684, in dispatch
    result = self._call_function(**self.params)
  File "/home/user/Projects/odoo-10/odoo/http.py", line 334, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/home/user/Projects/odoo-10/odoo/service/model.py", line 101, in wrapper
    return f(dbname, *args, **kwargs)
  File "/home/user/Projects/odoo-10/odoo/http.py", line 327, in checked_call
    result = self.endpoint(*a, **kw)
  File "/home/user/Projects/odoo-10/odoo/http.py", line 942, in __call__
    return self.method(*args, **kw)
  File "/home/user/Projects/odoo-10/odoo/http.py", line 507, in response_wrap
    response = f(*args, **kw)
  File "/home/user/Projects/odoo-10/odoo/addons/web/controllers/main.py", line 895, in call_kw
    return self._call_kw(model, method, args, kwargs)
  File "/home/user/Projects/odoo-10/odoo/addons/web/controllers/main.py", line 887, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/home/user/Projects/odoo-10/odoo/api.py", line 687, in call_kw
    return call_kw_model(method, model, args, kwargs)
  File "/home/user/Projects/odoo-10/odoo/api.py", line 672, in call_kw_model
    result = method(recs, *args, **kwargs)
  File "/home/user/Projects/odoo-10/odoo/models.py", line 1939, in read_group
    result = self._read_group_raw(domain, fields, groupby, offset=offset, limit=limit, orderby=orderby, lazy=lazy)
  File "/home/user/Projects/odoo-10/odoo/models.py", line 2052, in _read_group_raw
    aggregated_fields, count_field, result, read_group_order=order,
  File "/home/user/Projects/odoo-10/odoo/models.py", line 1680, in _read_group_fill_results
    groups = self.env[field.comodel_name].browse(group_ids)
  File "/home/user/Projects/odoo-10/odoo/api.py", line 760, in __getitem__
    return self.registry[model_name]._browse((), self)
  File "/home/user/Projects/odoo-10/odoo/modules/registry.py", line 177, in __getitem__
    return self.models[model_name]
KeyError: None

我該如何解決這個問題?

您是否將 default_group_by="state" 放在 xml 文件中,其中看板標簽作為屬性放置。 刪除 group_expand 方法並從字段中刪除屬性,因為它是一個選擇字段,所以您不需要返回 id,只需將屬性 default_group_by="state" 放在 xml 文件中,您就會看到結果。

根據源代碼文檔,在group_expand中定義的方法應該返回我們想要為該字段顯示的所有聚合值的列表,以 m2o 類對 (key,label) 的形式。

_read_group_fill_results方法將始終嘗試獲取字段的comodel_name以構建組,並且由於未為選擇字段定義 comodel_name,Odoo 將引發 KeyError KeyError: None

不幸的是,從Odoo-11開始就可以返回將用作組的值列表

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM