class Permission(models.Model):
"""
This stores permissions for a single object.
"""
#These 3 fields are used to implement a generic foreign key
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
model = GenericForeignKey()
user = models.ForeignKey(User)
#Permissions
read = models.BooleanField(default=False)
write = models.BooleanField(default=False)
delete = models.BooleanField(default=False)
def checkPermission(self, obj, user, action):
try:
p = Permission.objects.get(model=obj, user=user)
return getattr(p, action)
except ObjectPermission.DoesNotExist:
return False
django.core.exceptions.FieldError: Field 'model' does not generate an automatic reverse relation and therefore cannot be used for reverse querying. If it is a GenericForeignKey, consider adding a GenericRelation.