24 lines
538 B
Python
24 lines
538 B
Python
from django.contrib.auth.models import AbstractUser
|
|
|
|
|
|
def with_base_attributes(cls):
|
|
|
|
def validate(self, data):
|
|
user = None
|
|
request = self.context.get("request")
|
|
|
|
if request and hasattr(request, "user"):
|
|
user = request.user
|
|
|
|
if user is not None and isinstance(user, AbstractUser):
|
|
data.update({'modified_by': user})
|
|
|
|
if not self.instance:
|
|
data.update({'created_by': user})
|
|
|
|
return data
|
|
|
|
setattr(cls, "validate", validate)
|
|
|
|
return cls
|