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!