Generate recommendations in Django.
Project description
Use pyrecommend in Django projects.
Warning: not yet suitable for production.
django_recommend/ is the actual Django app intended for use in projects.
simplerec/ is a Django project used for testing.
Important note: Model classes/database schemas are only supported if they have unique integer primary keys.
Quickstart
Add django_recommend to your INSTALLED_APPS, and run python manage.py migrate.
Set SESSION_SAVE_EVERY_REQUEST=True in your settings, to ensure anonymous users can be tracked.
In your views, call django_recommend.set_score(request, object, score) to start recording user scores. (Currently this is assumed to be implicit feedback.) Note: This will use session keys to store scores for users who aren’t authenticated.
In your templates, use {% load django_recommend %} and {{ obj|similar_objects }} to show similar objects to visitors. This filter returns a list, so you may also do, for example:
{% load django_recommend %} {% with similar_products as product|similar_objects %} {% if similiar_products %} <h2>Other users also liked:</h2> <ul> {% for product in similar_products %} <li><a href=
"{{ product.get_absolute_url }}">{{ product }}</a></li> {% endfor %} </ul> {% endif %} {% endwith %}
Notes
There can be some potentially confusing behavior from this library if your application involves objects that get deleted/deactivated. Currently I am not sure how feasible it is to filter by a flag like ‘deactivated’; tests for that kind of functionality will be put into a future version.
If your data is ever deleted, by default, django_recommend will attempt to delete all recommendation information about it at the next available chance. This most notably can occur in ObjectSimilarityQueryset.get_instances_for, where you may, for example, have a queryset like:
suggested_books = similar_books.order_by( '-score')[:5].get_instances_for(curr_book)
If one of the books that would be suggested for this book has since been deleted, the default behavior will be to in fact give you a list of four instances. This is because retrieving the deleted instances raises an ObjectDoesNotExist error in the Django ORM; the default behavior is to simply delete that object’s information from the recommendation data and skip the object for now.
This can be controlled by the RECOMMEND_PURGE_MISSING_DATA boolean setting. If this is False, the exception will be propagated, so you may handle it in a different way.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django-recommend-0.1.dev9.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 81cbca818e89adbb21cad91303e12350cf3ef5f9e2d9b705ad6dc0dd3a7e782e |
|
MD5 | 55783ab64b748d75e20e10cbd4b07b17 |
|
BLAKE2b-256 | 56cb1dec0ec555cbb27133e06d93636b7531204e4bc72a8df5c91fd45bdfa697 |
Hashes for django_recommend-0.1.dev9-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a196708fb67d46b2e8ddd8687d35ea39fdc8e80e9427282826a19ed2d92c691f |
|
MD5 | c580b9c9f7006feaaaf2a8381aab201b |
|
BLAKE2b-256 | e36ee219be5d328b11a98c2598a19f64421d2877a9276f16c14179437c9be6ba |