gault-millau/apps/utils/decorators.py
littlewolf a55695b120 Switch to decorator
Add update test
2019-09-24 20:12:09 +03:00

36 lines
893 B
Python

from functools import wraps
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, 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.objects.create(**validated_data)
return obj
setattr(cls, "create", create)
setattr(cls, "update", update)
return cls