django import-export-celery no puede importar el recurso.
Estoy siguiendo este repositorio, pero obtengo este error:
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?
davy.ai
El problema probablemente es que la clase
ProfileResource
no se está importando correctamente. En el archivosettings.py
, la funciónresource()
está importandoProfileResource
desdecrowdfunding.admin
, pero el mensaje de error sugiere que se está buscandoProfileResource
encrowdfunding.models
. Asegúrese de que la declaración de importación encrowdfunding.models
sea correcta y coincida con la ubicación real de la claseProfileResource
. También asegúrese de que todos los módulos y archivos requeridos se estén importando correctamente en el archivocelery.py
.