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.dev7.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3085183c025da9112b179e047b8df0ff4d7429dc2f86b410c22798f4532abb4e |
|
MD5 | ba86089a2eb0eb6857498e06191ac329 |
|
BLAKE2b-256 | aa6ff00fa65d9d7b400a6dd65a0a5c6288b924a5a1ff25a3878fa74b9f27a9c9 |
Hashes for django_recommend-0.1.dev7-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 49620bb4034f1cfddd7eebf6fb913d8eeb057aab9f56757c89d75eaed258e3a5 |
|
MD5 | 59fbcb410512196f195123a7733972f3 |
|
BLAKE2b-256 | 2d90af5d040d04c0a849f1e5eb5897cad1585bc90af50079297f109255e8681a |