将参数传递给分派方法 我对Python和Django比较陌生
我正在解析Excel工作表,希望将数据存储在DB(MySQL)中。存储数据的表格信息可通过Excel表格获得。我想使用分派表来决定存储哪个对象。所需的字段可能会有所不同 我发现了一些我希望能起作用的东西,但不幸的是没有: 我希望新对象能够被存储或获取并返回给调用方 似乎发生了这样的情况:获取了3条现有的DB记录(它们都有不同的名称):将参数传递给分派方法 我对Python和Django比较陌生,python,django,dispatch,Python,Django,Dispatch,我正在解析Excel工作表,希望将数据存储在DB(MySQL)中。存储数据的表格信息可通过Excel表格获得。我想使用分派表来决定存储哪个对象。所需的字段可能会有所不同 我发现了一些我希望能起作用的东西,但不幸的是没有: 我希望新对象能够被存储或获取并返回给调用方 似乎发生了这样的情况:获取了3条现有的DB记录(它们都有不同的名称): website.models.MultipleObjectsReturned: get() returned more than one Assay -- i
website.models.MultipleObjectsReturned: get() returned more than one Assay --
it returned 3!
您正在调用包含hi参数的方法并将结果存储在dict中,而不是将可调用方法本身串起来。你应该做:
func_name_dict = {
'Assay': Assay.objects.get_or_create
}
没有括号
(虽然如果你只有一个条目,我不确定这样的分派指令的意义。)
评论后编辑
实际上,您有两个名为
name
的参数,一个作为位置参数,另一个在kwargs中。您将需要调用第一个参数—kwargs中永远不会出现的东西—例如,dispatch\u func\u name
,或其他任何东西。我认为您的dict不应该调用函数,而应该引用它,例如,{'Assay':Assay.objects.get\u或{u create}
新错误TypeError:dispatch()参数'name'有多个值。
一旦我得到一个有效的方法,当然会有几个方法。删除括号会给我带来一个新错误:TypeError:dispatch()为参数“name”获取了多个值。
很好,这就是罪魁祸首。谢谢你,丹尼尔!
func_name_dict = {
'Assay': Assay.objects.get_or_create
}