Do I need to explicitly use transactions with Django Rest Framework serializer updates?

前端 未结 3 2158
夕颜
夕颜 2020-12-10 17:24

According to http://www.django-rest-framework.org/api-guide/serializers/#writable-nested-representations, in order to accept a nested serializer I need to create an up

相关标签:
3条回答
  • 2020-12-10 17:39

    first import transaction module from db, and then use the following

    with transtaction.atomic():
        pass
    

    This will ensure the atomicity and consistency of your data into database.

    0 讨论(0)
  • 2020-12-10 17:46

    The related PR is unrelated to your question. PR is linked to the DRF specific exception handler that bypassed the default Django transaction scheme (https://github.com/tomchristie/django-rest-framework/pull/1204#issuecomment-52712621).

    DRF doesn't specifically wrap things in a transaction to leave the users free to choose whatever they want to.

    0 讨论(0)
  • 2020-12-10 17:53

    You can also use Django's ATOMIC_REQUESTS database setting which will apply a transaction before the execution of each request and commit it if the request finishes successfully. More information here:

    Database transactions - Tying transactions to HTTP requests

    0 讨论(0)
提交回复
热议问题