mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-07-23 22:49:50 +03:00
Merge e828902023
into ff01ae3571
This commit is contained in:
commit
6aef693ebf
|
@ -18,7 +18,7 @@ class CreateModelMixin(object):
|
|||
serializer = self.get_serializer(data=request.DATA, files=request.FILES)
|
||||
if serializer.is_valid():
|
||||
self.pre_save(serializer.object)
|
||||
self.object = serializer.save()
|
||||
self.object = serializer.save(force_insert=True)
|
||||
headers = self.get_success_headers(serializer.data)
|
||||
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
|
||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
@ -93,7 +93,10 @@ class UpdateModelMixin(object):
|
|||
|
||||
if serializer.is_valid():
|
||||
self.pre_save(serializer.object)
|
||||
self.object = serializer.save()
|
||||
if created:
|
||||
self.object = serializer.save(force_insert=True)
|
||||
else:
|
||||
self.object = serializer.save(force_update=True)
|
||||
status_code = created and status.HTTP_201_CREATED or status.HTTP_200_OK
|
||||
return Response(serializer.data, status=status_code)
|
||||
|
||||
|
|
|
@ -339,11 +339,11 @@ class BaseSerializer(Field):
|
|||
self._data = self.to_native(self.object)
|
||||
return self._data
|
||||
|
||||
def save(self):
|
||||
def save(self,**kwargs):
|
||||
"""
|
||||
Save the deserialized object and return it.
|
||||
"""
|
||||
self.object.save()
|
||||
self.object.save(**kwargs)
|
||||
return self.object
|
||||
|
||||
|
||||
|
@ -519,18 +519,18 @@ class ModelSerializer(Serializer):
|
|||
self.m2m_data[field.name] = attrs.pop(field.name)
|
||||
return self.opts.model(**attrs)
|
||||
|
||||
def save(self, save_m2m=True):
|
||||
def save(self, save_m2m=True, **kwargs):
|
||||
"""
|
||||
Save the deserialized object and return it.
|
||||
"""
|
||||
self.object.save()
|
||||
obj = super(ModelSerializer, self).save(**kwargs)
|
||||
|
||||
if getattr(self, 'm2m_data', None) and save_m2m:
|
||||
for accessor_name, object_list in self.m2m_data.items():
|
||||
setattr(self.object, accessor_name, object_list)
|
||||
self.m2m_data = {}
|
||||
|
||||
return self.object
|
||||
return obj
|
||||
|
||||
|
||||
class HyperlinkedModelSerializerOptions(ModelSerializerOptions):
|
||||
|
|
Loading…
Reference in New Issue
Block a user