将参数传递给分派方法 我对Python和Django比较陌生

将参数传递给分派方法 我对Python和Django比较陌生,python,django,dispatch,Python,Django,Dispatch,我正在解析Excel工作表,希望将数据存储在DB(MySQL)中。存储数据的表格信息可通过Excel表格获得。我想使用分派表来决定存储哪个对象。所需的字段可能会有所不同 我发现了一些我希望能起作用的东西,但不幸的是没有: 我希望新对象能够被存储或获取并返回给调用方 似乎发生了这样的情况:获取了3条现有的DB记录(它们都有不同的名称): website.models.MultipleObjectsReturned: get() returned more than one Assay -- i

我正在解析Excel工作表,希望将数据存储在DB(MySQL)中。存储数据的表格信息可通过Excel表格获得。我想使用分派表来决定存储哪个对象。所需的字段可能会有所不同

我发现了一些我希望能起作用的东西,但不幸的是没有:

我希望新对象能够被存储或获取并返回给调用方

似乎发生了这样的情况:获取了3条现有的DB记录(它们都有不同的名称):

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
}