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
有两种方法可以解决此问题,
data = ""
with open(your_file, "rb") as f:
data = f.read()
upload_subscribers.delay( data )