Python 为什么列表在这个类中不被接受为参数?
我有一个类需要一个列表作为参数。问题是,当我导入此函数并将其用作参数时,我会得到一个Python 为什么列表在这个类中不被接受为参数?,python,django,Python,Django,我有一个类需要一个列表作为参数。问题是,当我导入此函数并将其用作参数时,我会得到一个TypeError或ValueError 我已尝试搜索此问题,但似乎找不到匹配的问题 出现问题的代码: from payroll.payroll import get_employee_names class ManagerForm(forms.Form): names = forms.ChoiceField(choices=[get_employee_names()]) 导入的函数: def get
TypeError
或ValueError
我已尝试搜索此问题,但似乎找不到匹配的问题
出现问题的代码:
from payroll.payroll import get_employee_names
class ManagerForm(forms.Form):
names = forms.ChoiceField(choices=[get_employee_names()])
导入的函数:
def get_employee_names():
# place uploaded files into variables
tips_file = 'media/reports/Tips_By_Employee_Report.xls'
# get managers name
df_employee_names = pd.read_excel(
tips_file, sheet_name=0, header=None, skiprows=7)
df_employee_names.rename(
columns={0: 'Employee'}, inplace=True)
df_employee_names['Employee'] = \
df_employee_names['Employee'].str.lower()
# data-frame to list
employee_names = df_employee_names.loc[:, 'Employee'].tolist()
return employee_names
我希望它使用函数末尾返回的列表来创建下拉菜单
我目前遇到的主要错误是:ValueError at/select manager run payroll/要解包的值太多(预期为2)
编辑:发现它需要一个元组作为参数。ChoiceField
参数应该接收元组列表,而不是列表的1元素列表
重写获取员工姓名以提供:
def get_employee_names():
# ...
#期望员工的名字类似于['a','b','c']
返回[(姓名,姓名)作为员工姓名]
以您的形式:
类管理器窗体(forms.Form):
name=forms.ChoiceField(choices=get\u employee\u names())
选项
应该是2元组的iterable或返回这样一个iterable的callable。非常感谢。标题已更新以反映这一点。