PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Seledri meningkatkan kesalahan saat meneruskan obj queryset saya sebagai parameter

Anda tinggal mengirimkan id instance Anda dan mengambil objek di dalam tugas. Melewati instance adalah praktik yang buruk, karena dapat diubah sementara , khususnya bahwa Anda menjalankan tugas Anda dengan deplay seperti yang terlihat.

views.py :

class MyModelCreateApiView(generics.CreateAPIView):
    queryset = MyModel.objects.all()
    serializer_class = MyModelSerializer
    authentication_classes = (TokenAuthentication,)

    def create(self, request, *args, **kwargs):
        data = dict()
        data['foreign_model_id'] = kwargs['pk']
        foreign_model_obj = MyForeignModel.objects.get(id=data['foreign_model_id'])

        obj = MyModel.objects.create(**data)
        result = serialize_query(MyModel, {"id": obj.id})
        local_time = foreign_model_obj.time
        my_celery_task.apply_async([foreign_model_obj.id], eta=local_time) # send only the obj id
        return Response(result)

tasks.py :

@celery_app.task(name="my_celery_task")
def my_celery_task(mymodel_obj_id):
    my_model_obj = MyModel.objects.get(id=mymodel_obj_id) # retrieve your object here
    # ... updating obj attributes
    mymodel_obj.save()


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL 9.1 menggunakan susun dalam pernyataan terpilih

  2. Kerangka Yii:Tabel untuk kelas record aktif tidak dapat ditemukan di database

  3. Melarikan diri dari karakter khusus di to_tsquery

  4. Bagaimana cara membagi satu baris menjadi beberapa baris dengan satu kueri?

  5. Postgres:Banyak-ke-banyak vs. banyak kolom vs. kolom array