如何在将数据导入模型后在django中发送信号



我将在模型更新后发送信号删除所有缓存。

如果我逐个添加,我的代码工作得很好。当我导入文件时,它不起作用

我的型号:

class testimport(models.Model):
id=models.AutoField(primary_key=True)
so_hd=models.CharField( max_length=50, unique=True)
ten_kh=models.CharField( max_length=500)
created_at=models.DateTimeField(auto_now_add=True)

# pre_save method
def pre_save_signal_import_redis(sender, instance, created,*args,  **kwargs):
print(instance.so_hd)
print("pre_save_signal_import")
cache.delete("*")
pre_save.connect(pre_save_signal_import_redis,sender=testimport)       

没有错误,它只是不打印任何内容,即使数据已更新如果我逐个添加,pre_save_signal_import_redis工作良好并打印所有我对导入代码的看法

if request.method == 'POST':
myfile = request.FILES['myfile']             
empexceldata = pd.read_excel(myfile, engine='openpyxl')

dbframe = empexceldata
df_records = dbframe.to_dict('records')
batch_size = 1000
batch = []
for record in df_records:
model_instances = testimport(
so_hd=record['SỐ HD'],
ten_kh=record["TÊN KH"],
)
batch.append(model_instances)
testimport.objects.bulk_create(batch,batch_size)

感谢阅读

我找到了另一种方法来处理我的问题。在导入数据库之前,我刚刚添加了cache.clear()

最新更新