Django 芹菜任务类与DRF序列化程序
我尝试在具有多重继承的同一类中使用芹菜任务和Django rest框架序列化程序Django 芹菜任务类与DRF序列化程序,django,django-rest-framework,celery,Django,Django Rest Framework,Celery,我尝试在具有多重继承的同一类中使用芹菜任务和Django rest框架序列化程序 from celery import Task class ReceiveSerializer(Task, serializers.Serializer): def run(self, source, *args, **kwargs): self.save() def save(self, **kwargs): # call long running save met
from celery import Task
class ReceiveSerializer(Task, serializers.Serializer):
def run(self, source, *args, **kwargs):
self.save()
def save(self, **kwargs):
# call long running save method
我出错了
File "<>\serializers.py", line 217, in <module>
class ReceiveSerializer(Task, serializers.Serializer):
File "<>\workspace\www\lib\site-packages\celery-3.1.20-py2.7.egg\celery\app\task.py", line 199, in __new_
_
tasks.register(new(cls, name, bases, attrs))
TypeError: Error when calling the metaclass bases
metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
文件“\serializers.py”,第217行,在
类ReceiveSerializer(任务,Serializer.Serializer):
文件“\workspace\www\lib\site packages\cellery-3.1.20-py2.7.egg\cellery\app\task.py”,第199行,新_
_
任务.注册表(新的(cls、名称、基数、属性))
TypeError:调用元类基时出错
元类冲突:派生类的元类必须是其所有基元类的(非严格)子类
save方法必须在db中创建一长串对象(有时超过5分钟)。我不希望用户等待很长时间。
有没有办法做到这一点 可以使用混合器吗
class YourMixin:
# if you want to trigger the task on save:
def save(self, *args, **kwargs):
ret = super().save(*args, **kwargs)
some_task.apply_async((
self.__class__.__name__,
self.pk,
))
return ret
@task()
def some_task(model_name, model_id):
my_model = apps.get_model('django_app_name.{}'.format(model_name))
obj = my_model.objects.get(pk=model_id)