def exclude_private(self):
"""filter based on 'privacy_field' model class attribute
'privacy_field' is a two-tuple whose first item is the name of a
BooleanField and whose second item is a bool which is True if
'<privacy_field[0]> == True' indicates private (such as a field 'is_private')
"""
if not hasattr(self.model, "privacy_field"):
return self
privacy_field = self.model.privacy_field
return self.exclude(**{privacy_policy[0]: privacy_field[1]})
from django.db.models import QuerySet
QuerySet.exclude_private = exclude_private
Comments