python - How to filter generic foreign keys? -
i have these models:
class evententry(models.model): content_type = models.foreignkey(contenttype) object_id = models.positiveintegerfield() content_object = generic.genericforeignkey('content_type', 'object_id') start_date = models.datetimefield(...) end_date = models.datetimefield(...) field = models.charfield(max_length=64) class objectperm(models.model): content_type = models.foreignkey(contenttype) object_id = models.positiveintegerfield() content_object = generic.genericforeignkey('content_type', 'object_id') public = models.booleanfield(...) users = models.manytomanyfield(user...) groups = models.manytomanyfield(group...) class meeting(models.model): scheduled_time = generic.genericrelation(evententry) room = models.charfield(max_length=8) permissions = genericrelation(objectperm) class milestone(models.model): due_date = generic.genericrelation(evententry) title = models.charfield(max_length=128) permissions = genericrelation(objectperm) the evententry class used attach scheduling info object, such meeting , milestone.
the objectperm class provides object level permissions model needs protection.
when create instance of meeting, assign evententry instance schedule information. assign objectperm instances specify users can access meeting object.
there more models meeting , milestone.
now, want retrieve evententry instances, related objects user has permission access, based on objectperm model. illustration evententry instances public == true or user in evententry field "users". way can pull out events display in calendar don't need filter meetings, milestones etc. except can't work out how write filter in python using django's orm. suggestions appreciated. thanks
have taken @ docs? info seems pretty helpful me. might useful way see (little) experience potentially require couple of calls job done. hope works
https://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/#reverse-generic-relations
python django django-models orm generic-relations
No comments:
Post a Comment