class UserManager(models.Manager):
def __init__(self, *args):
try:
self.fk_field_name = args[0]
except IndexError:
self.fk_field_name = None
super(UserManager, self).__init__()
def get_query_set(self):
query_set = super(UserManager, self).get_query_set()
if self.fk_field_name:
current_user = get_current_user()
if current_user and not current_user.is_superuser:
return query_set.filter(**{ '%s__exact' % self.fk_field_name: current_user })
return query_set
# Example usage
class TestModel(models.Model):
owner = models.ForeignKey('auth.user')
objects = UserManager('owner')
Comments