Django get_or_create() 在数据库中创建重复项

2024-10-01 07:13:18 发布

您现在位置:Python中文网/ 问答频道 /正文

使用Django 1.11.6MySql 我只从CSV文件导入uniq数据行(~530行)。 第一次导入后-530条记录全部更新到数据库。 如果我在2d时间导入这个文件,那么最后的记录将更新到DB。在

获取数据:

obj.account = int(ready_item[0].replace("\"","").replace("*",""))
                pai_obj.reporting_mask = str(ready_item[0].replace("\"","").replace("*",""))
                pai_obj.group = ready_item[1].replace("\"","")
                pai_obj.location = ready_item[2].replace("\"","")
                pai_obj.terminal = ready_item[4].replace("\"","")
                pai_obj.settlement_type = ready_item[5].replace("\"","")
                pai_obj.settlement_date = datetime_or_none(report_data)
                pai_obj.amount = float_or_none(ready_item[6].replace("\"","").replace("$","").replace(",",""))

                data.append(pai_obj)

Import vie get_或_create():

^{pr2}$

模型:

^{3}$
  1. 我知道,get_or_create()应该首先检查数据是否已经存在,如果不存在,则创建新记录。为什么get_or_create()传递一些记录?在

Tags: or文件djangononeobjdatagetcreate
1条回答
网友
1楼 · 发布于 2024-10-01 07:13:18

这个案例是关于在come之后带有+3符号的Flout值(12012)。 每次用户导入同一个文件时,这些值都是重复的。 找到下一个解决方案: 1在文件行分析期间,将amount和其他值保存在str处。在

obj.account = int(ready_item[0].replace("\"","").replace("*",""))
                pai_obj.reporting_mask = str(ready_item[0].replace("\"","").replace("*",""))
                pai_obj.group = ready_item[1].replace("\"","")
                pai_obj.location = ready_item[2].replace("\"","")
                pai_obj.terminal = ready_item[4].replace("\"","")
                pai_obj.settlement_type = ready_item[5].replace("\"","")
                pai_obj.settlement_date = datetime_or_none(report_data)
                pai_obj.amount = *str*(ready_item[6].replace("\"","").replace("$","").replace(",",""))

                data.append(pai_obj)

相关问题 更多 >