【发布时间】:2019-04-11 23:28:50
【问题描述】:
当我运行下面的代码时,Django 抛出一个包装器错误,错误代码如下所示
错误信息:
AttributeError: 'method-wrapper' 对象没有属性 'module'
Models.py
class PatientMasters(models.Model):
patient_id = models.AutoField(primary_key=True)
patient_n_key = models.CharField(max_length=15, blank=True, unique=True)
centre_master_short_name = models.CharField(blank=False, max_length=33)
centre_master_id = models.CharField(blank=False, max_length=15)
pid_no = models.CharField(max_length=45, blank=True, null=True)
aadhar_number = models.CharField(max_length=45, blank=True, null=True)
date_of_registration = models.BigIntegerField()
patient_name = models.CharField(max_length=45,blank=False)
gender = models.CharField(max_length=45,blank=False)
patient_category = models.CharField(max_length=45, blank=True, null=True)
age = models.IntegerField(blank=False)
class Meta:
managed = False
db_table = 'patient_masters'
@receiver(post_save, sender=PatientMasters)
def generate_pat_unique_key(sender, instance, created, **kwargs):
"""
Generate unique n_key as an combination of primary key and centre_master_id
"""
post_save.disconnect(generate_pat_unique_key, sender=PatientMasters)
instance.patient_n_key = "{}-pat-{}".format(instance.centre_master_short_name, instance.patient_id)
instance.save()
post_save.connect(generate_pat_unique_key, sender=PatientMasters)
Views.py
class PatientMastersviewset(viewsets.ModelViewSet):
queryset=models.PatientMasters.objects.all()
serializer_class=serializers1.PatientMastersserializer
lookup_field = 'patient_n_key'
tasks.PatientMastersviewset.delay()
tasks.py
@app.task
class PatientMastersviewset(viewsets.ModelViewSet):
queryset=models.PatientMasters.objects.all()
serializer_class=serializers1.PatientMastersserializer
lookup_field = 'patient_n_key'
【问题讨论】:
-
你为什么使用视图集作为 Celery 任务?这没有任何意义。你期待它做什么?
-
我有一个仪表板页面,它从 10 个不同的 url 获取数据它花费了太多时间加载数据我想加快它如何实现
标签: python django python-3.x django-rest-framework celery