36 lines
893 B
Python
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
|