PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Błąd podniesienia selera podczas przekazywania mojego obiektu queryset jako parametru

Wystarczy wysłać id Twojej instancji i pobierz obiekt w ramach zadania.Przekazywanie instancji to zła praktyka, ponieważ można ją w międzyczasie zmienić , zwłaszcza, że ​​wykonujesz swoje zadanie z opóźnieniem, jak się wydaje.

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)

tass.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. Sprawdź, czy klucz istnieje w JSON z PL/pgSQL?

  2. Tabela partycjonowania na podstawie pierwszej litery pola varchar

  3. Sprawdzanie PL/pgSQL, czy wiersz istnieje

  4. Błąd:kolumna nie istnieje

  5. django.db.utils.IntegrityError:kolumna location_city zawiera wartości null