This app provides some snippets (such as abstract models and managers with some useful methods) to simplyfy creation of another pluggable apps.

The license is MIT.


pip install django-generic-helpers

After you can add app 'generic_helpers' to your INSTALLED_APPS. If you aren't want to run test, you can skip this step.


To use this app, just import GenericRelationModel class from generic_helpers.models package and inherit your model from it:

from django.db import models from generic_helpers.models import GenericRelationModel

class MyModel(GenericRelationModel):
title = models.CharField(max_length=255)

Now MyModel class has content_object attribute and you can create MyModel instances using generic relation:

>>> from django.contrib.auth.models import User
>>> user = User.objects.get(pk=1)
>>> my_model = MyModel.objects.create(title='title',
...                                   content_object=user)

In this example how you can see we have used User.

Also your model manager has a get_for_object method for quick filtering by content_object complex field:

>>> from django.contrib.auth.models import User
>>> user = User.objects.get(pk=1)
>>> models_for_user = MyModel.objects.get_for_object(user)


If you've found a bug, implemented a feature and think it is useful, or you've own pluggable app and want to use django-generic-helpers in it, then please consider contributing. Patches, pull requests or just suggestions are welcome!