Naming series 'filter' object is not subscriptable

Traceback (most recent call last):
  File "/home/frappe/frappe-bench/apps/frappe/frappe/app.py", line 62, in application
    response = frappe.handler.handle()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/handler.py", line 22, in handle
    data = execute_cmd(cmd)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/handler.py", line 53, in execute_cmd
    return frappe.call(method, **frappe.form_dict)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 939, in call
    return fn(*args, **newargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/handler.py", line 81, in runserverobj
    frappe.desk.form.run_method.runserverobj(method, docs=docs, dt=dt, dn=dn, arg=arg, args=args)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/desk/form/run_method.py", line 39, in runserverobj
    r = doc.run_method(method, args)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 755, in run_method
    out = Document.hook(fn)(self, *args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 1029, in composer
    return composed(self, method, *args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 1012, in runner
    add_to_return_value(self, fn(self, *args, **kwargs))
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 749, in <lambda>
    fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs)
  File "/home/frappe/frappe-bench/apps/erpnext/erpnext/setup/doctype/naming_series/naming_series.py", line 54, in update_series
    self.set_series_for(self.select_doc_for_series, series_list)
  File "/home/frappe/frappe-bench/apps/erpnext/erpnext/setup/doctype/naming_series/naming_series.py", line 72, in set_series_for
    default = options[0] if options else ''
TypeError: 'filter' object is not subscriptable

just trying the naming series but got this error…
how to fix this issue?

1 Like

fix this by adding list

for def scrub_options_list(self, ol):

from this

options = filter(lambda x: x, [cstr(n).strip() for n in ol])

become this

options = list(filter(lambda x: x, [cstr(n).strip() for n in ol]))