es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

django import-export-celery no puede importar el recurso.

Estoy siguiendo este repositorio, pero obtengo este error:

enter image description here

Error: Error de importación, no se puede importar el nombre ‘ProfileResource’ de ‘crowdfunding.models’ (C:_____\crowdfunding\models.py)

Supuestamente este hace una importación asíncrona. El problema es que no puede detectar mi ‘ProfileResource’.

He especificado en mi settings.py que mi recurso debe ser obtenido de admin.py.

def resource():
    from crowdfunding.admin import ProfileResource
    return ProfileResource

IMPORT_EXPORT_CELERY_MODELS = {
    "Profile": {
        'app_label': 'crowdfunding',
        'model_name': 'Profile',
        'resource': resource,
    }
}

Pero parece que no puede hacerlo.

Mi celery.py es el siguiente:

from __future__ import absolute_import, unicode_literals

import os
import sys

from celery import Celery

# sys.path.append("../")

# Establece el módulo de configuración de Django por defecto para el programa 'celery'.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mainapp.settings')

from django.conf import settings

app = Celery('mainapp',
            broker='amqp://guest:guest@localhost:15672//',
            # broker='localhost',
            # backend='rpc://',
            backend='db+sqlite:///db.sqlite3',
            # include=['crowdfunding.tasks']
            )

# Usar una cadena aquí significa que el trabajador no tiene que serializar
# el objeto de configuración a los procesos hijo.
# - El espacio de nombres 'CELERY' significa que todas las claves de configuración relacionadas con Celery
#   deben tener el prefijo 'CELERY_'.
app.config_from_object('django.conf:settings', namespace='CELERY')

app.autodiscover_tasks()

El corredor y el backend funcionan correctamente, por lo que el problema radica en que la configuración no es reconocida. ¿Cuál podría ser el problema?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El problema probablemente es que la clase ProfileResource no se está importando correctamente. En el archivo settings.py, la función resource() está importando ProfileResource desde crowdfunding.admin, pero el mensaje de error sugiere que se está buscando ProfileResource en crowdfunding.models. Asegúrese de que la declaración de importación en crowdfunding.models sea correcta y coincida con la ubicación real de la clase ProfileResource. También asegúrese de que todos los módulos y archivos requeridos se estén importando correctamente en el archivo celery.py.

Comments are closed.