python - Django对象.get_or_create() : passing arguments from dictionary or list

标签 python django

我目前有一个django管理命令来导入CSV文件,它是基于this answer 。主要业务是由下面这行循环完成的:

created = Customer.objects.get_or_create(account_no = int(row[0]), name = row[1])

但是,因为我有许多不同的模型要运行它,所以我希望将上面的代码放在一个函数中,并从字典中传递属性和行键;所以我会定义类似的东西:

csv_columns = { 0: 'account_no', 1: 'name' }

但是我不知道如何基于此运行 get_or_create 函数。我确信这应该很简单。

最佳答案

首先,你的字典应该是这样的:

csv_row = {"account_no": "123-456", "name": "v25"}

确保使用 DictReader 以便读取 csv 文件的标题,然后正确迭代 csv 文件的行,即生成的每个字典的键是列名称。

然后,get_or_create 调用将是一个简单的解包,如下所示:

Customer.objects.get_or_create(**csv_row)

关于python - Django对象.get_or_create() : passing arguments from dictionary or list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52194186/

相关文章:

python - ConnectionRefusedError at/password-reset/[WinError 10061] 由于目标机器主动拒绝而无法建立连接

django-pipeline 不起作用

django - 如何在django 1.5中获取request.path?

python - 根据另一个查询集的长度对一个查询集进行排序

Django:列出所有具有非唯一字段的对象

python - 如何设置在 Rhythmbox 2.96 中播放的歌曲的评级?

Python:从处理后的图像中创建视频

python - Django 查询 : Group by field and get the latest entry per group

python - TabPy (Tableau) 如何从工作簿自动生成 pdf

python - **kwargs 中具有多种类型的类型注释