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

浙公网安备 33010602011771号