mixins.py 488 B

123456789101112131415
  1. # -*- coding: utf-8 -*-
  2. from django.contrib.auth.mixins import UserPassesTestMixin
  3. class ModelUserFieldPermissionMixin(UserPassesTestMixin):
  4. model_permission_user_field = 'user'
  5. def get_model_permission_user_field(self):
  6. return self.model_permission_user_field
  7. def test_func(self):
  8. model_attr = self.get_model_permission_user_field()
  9. current_user = self.request.user
  10. return current_user == getattr(self.get_queryset().first(), model_attr)