Django models 中导入重复数据的解决办法

如果你导入数据过多,导入时出错了,或者你手动停止了,导入了一部分,还有一部分没有导入。或者你再次运行上面的命令,你会发现数据重复了,怎么办呢?

django.db.models 中还有一个函数叫 get_or_create() 有就获取过来,没有就创建,用它可以避免重复,但是速度可以会慢些,因为要先尝试获取,看看有没有

只要把上面的

models.PangleData.objects.create(ad_slot_id=ad_slot_id, ad_slot_type=ad_slot_type, app_id=app_id,
                                             app_name=app_name, bidding_type=bidding_type, click=click,
                                             click_rate=click_rate, code_name=code_name, currency=currency,
                                             date=date, ecpm=ecpm, fill_rate=fill_rate, media_m_ssr=media_m_ssr,
                                             media_name=media_name, os=os, package_name=package_name,region=region,
                                             request=request, P_return=P_return, revenue=revenue, show=show,
                                             time_zone=time_zone, use_mediation=use_mediation,)

  

换成下边这种

models.PangleData.objects.get_or_create(ad_slot_id=ad_slot_id, ad_slot_type=ad_slot_type, app_id=app_id,
                                             app_name=app_name, bidding_type=bidding_type, click=click,
                                             click_rate=click_rate, code_name=code_name, currency=currency,
                                             date=date, ecpm=ecpm, fill_rate=fill_rate, media_m_ssr=media_m_ssr,
                                             media_name=media_name, os=os, package_name=package_name,region=region,
                                             request=request, P_return=P_return, revenue=revenue, show=show,
                                             time_zone=time_zone, use_mediation=use_mediation,)

  就可以避免导入重复数据了;

返回值是(PangleDataObject, True/False) 新建时返回 True, 已经存在时返回 False。

作者:Star-Hitian,转载请注明原文链接:https://www.cnblogs.com/Star-Haitian/p/15189810.html

原文地址:https://www.cnblogs.com/Star-Haitian/p/15189810.html