Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 只需导入芹菜任务_Django_Django Celery - Fatal编程技术网

Django 只需导入芹菜任务

Django 只需导入芹菜任务,django,django-celery,Django,Django Celery,我有一个简单的视图,它将CSV数据上传到映射模型并填充数据。这是完美的,但现在我想集成,我真的很难让下面的任务正常工作。我想尝尝芹菜配丹果和巧克力 这是运行任务的myview.py的主要部分: def upload(request): # If we had a POST then get the request post values. if request.method == 'POST': form = ContactUplo

我有一个简单的视图,它将CSV数据上传到映射模型并填充数据。这是完美的,但现在我想集成,我真的很难让下面的任务正常工作。我想尝尝芹菜配丹果和巧克力

这是运行任务的my
view.py
的主要部分:

    def upload(request):
        # If we had a POST then get the request post values.
        if request.method == 'POST':
            form = ContactUploadForm(request.POST, request.FILES)
            # Check we have valid data
            if form.is_valid():

                filename = handle_uploaded_file(request.FILES['file'])

                import_csv.delay(filename)

def handle_uploaded_file(f):
    with open('name.csv', 'wb+') as destination:
        for chunk in f.chunks():
            destination.write(chunk)
这是我第一次尝试这项任务。py

@task
def import_csv(filename):
    ContactCSVModel.import_from_file(filename)
@task
def import_csv(filename):
    ContactCSVModel.import_data(data = open(filename))
这在芹菜日志中给出了错误:
AttributeError:'NoneType'对象没有属性'seek'

我认为我的第二次尝试不起作用,因为它实际上试图将文件上载到SQS,并使
SQSError:413请求实体过大。我假设这根本不是我想做的,这是一项任务,我不想将文件上传到SQS

第二次尝试task.py

@task
def import_csv(filename):
    ContactCSVModel.import_from_file(filename)
@task
def import_csv(filename):
    ContactCSVModel.import_data(data = open(filename))
3rd尝试在task.py上传递请求

@task
def import_csv(request):
    filename = handle_uploaded_file(request.FILES['file'])
    ContactCSVModel.import_data(data = open(filename))
这导致错误
**无法pickle:属性查找cStringIO.StringO失败**

我怎样才能完成这项任务?我确信这是一件非常简单的事情:)正如你所看到的,我在上面尝试了一些不同的方法来创建这项任务

下面这个例子:

创建一个新的模型来处理文件上传,并使用芹菜来运行导入,这样任务就是作业id

@task
def process_upload(upload_id):
    upload = Uploads.objects.get(id=upload_id)
    upload.process()