的问题 upload_subscribers.delay
参数只能是整数或字符串,我将无法传递 request
或者 your_file
作为函数的参数。如何修复下面的代码,使其可以在celery中作为后台任务运行?
import pandas as pd
from .models import Subscriber
def upload_subscribers(request):
template = "audiences/upload.html"
if request.method == "POST":
your_file = request.FILES['file']
if your_file.name.endswith('.xlsx'):
df = pd.read_excel(your_file)
for index, row in df.iterrows():
created = Subscriber.objects.update_or_create(
email= row[2],
defaults = {
"first_name": row[0],
"last_name": row[1],
})
return None
1条答案
按热度按时间mspsb9vt1#
有两种方法可以解决这个问题,
将文件的整个数据作为函数参数发送
将文件保存在磁盘、s3、数据库等存储系统中,将此文件位置发送到celery 任务。