gault-millau/apps/utils/decorators.py
2019-09-24 20:22:27 +03:00

37 lines
916 B
Python

def with_base_attributes(cls):
def create(self, validated_data):
user = None
request = self.context.get("request")
if request and hasattr(request, "user"):
user = request.user
if user is not None:
validated_data['created_by'] = user
validated_data['modified_by'] = user
obj = self.Meta.model.objects.create(**validated_data)
return obj
def update(self, instance, validated_data):
user = None
request = self.context.get("request")
if request and hasattr(request, "user"):
user = request.user
if user is not None:
validated_data['modified_by'] = user
obj = self.Meta.model
obj.objects.filter(pk=instance.id).update(**validated_data)
return instance
setattr(cls, "create", create)
setattr(cls, "update", update)
return cls