mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-05 04:50:12 +03:00
Merge b9d7a11156
into fd72a814f8
This commit is contained in:
commit
bb0cd85767
|
@ -6,10 +6,51 @@ which allows mixin classes to be composed in interesting ways.
|
||||||
"""
|
"""
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
import warnings
|
||||||
|
|
||||||
from rest_framework import status
|
from rest_framework import status
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from rest_framework.settings import api_settings
|
from rest_framework.settings import api_settings
|
||||||
|
|
||||||
|
class CreateOrUpdateHooksMixin(object):
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
warnings.warn('The pre_save and post_save hooks are deprecated. Use perform_create and perform_update instead.',
|
||||||
|
PendingDeprecationWarning, stacklevel=2)
|
||||||
|
super(CreateOrUpdateHooksMixin, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
def pre_save(obj):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def perform_create(self, serializer):
|
||||||
|
self.pre_save(serializer.instance)
|
||||||
|
instance = serializer.save()
|
||||||
|
self.post_save(instance, created=True)
|
||||||
|
|
||||||
|
def perform_update(self, serializer):
|
||||||
|
self.pre_save(serializer.instance)
|
||||||
|
instance = serializer.save()
|
||||||
|
self.post_save(instance, created=False)
|
||||||
|
|
||||||
|
def post_save(obj, created=False):
|
||||||
|
pass
|
||||||
|
|
||||||
|
class DeleteHooksMixin(object):
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
warnings.warn('The pre_delete and post_delete hooks are deprecated. Use perform_delete instead.',
|
||||||
|
PendingDeprecationWarning, stacklevel=2)
|
||||||
|
super(DeleteHooksMixin, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
def pre_delete(obj):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def perform_delete(self, instance):
|
||||||
|
self.pre_delete(instance)
|
||||||
|
instance.delete()
|
||||||
|
self.post_delete(instance)
|
||||||
|
|
||||||
|
def post_delete(obj):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
class CreateModelMixin(object):
|
class CreateModelMixin(object):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue
Block a user