请建议对批量数据进行优化的Django更新查询

时间:2017-11-17 11:06:52

标签: python-3.x postgresql django-models

所以,我有这样的词典列表

dnc_info = [{'website': 'www.mdn.com', 'name':'shubham', 'company_name': 'mdn'}, {'website': 'google.com', 'name': 'ketan', 'company_name': 'google'}, {'website': 'http://microsoft.com', name:'somename', , 'company_name': 'microsoft'}, {'website': None, 'name':'somename2',, 'company_name': None}....] upto 10,000 dict

现在,我有一个DataBase(PostgreSQL)表,其中包含以下字段:

+--------------+-------------+--------------------+-------------+---------
| company_name |   website   |       email        | campaign_id | color_code |  |
+--------------+-------------+--------------------+-------------+------------+--+
| google       | google.com  | shubham@google.com |          50 | #FFFFFF    |  |
| mdn          | www.mdn.com | some@mdn.com       |          50 | #FFFFFF    |  |
+--------------+-------------+--------------------+-------------+---------

最多20,000行

现在我想要的是能够根据以下条件从dnc_info更新上表中的颜色代码字段

条件1:表格的公司名称应与dnc_info公司名称匹配,忽略区分大小写 条件2: 表格中只有网站的域名应与dnc_info网站域名匹配,忽略案例敏感度
条件3 :表格的电子邮件域名应与dnc_info网站的域名匹配,同时忽略区分大小写。
条件4:表格的电子邮件应与dnc_info电子邮件匹配,同时忽略区分大小写。

我可以为dnc_info中的每个对象键创建单独的列表,如下所示:

website = ['mdn.com', 'google.com', 'microsoft.com']
email = ['shubham@mdn.com', 'someone@google.com']

请根据上述条件建议优化模型查询,以更新表格中的color_code列。

1 个答案:

答案 0 :(得分:0)

我没有使用ORM,而是使用了raw_query(),它对我有用。