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 the generic_helpers app into 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!