Django-Friendship
This application enables you to create and manage follows and bi-d This application enables you to create and manage follows and bi-directional friendships between users. It features:
Friendship request objects that can be accepted, rejected, canceled, or marked as viewed.
Hooks to easily list all friend requests sent or received by a given user, filtered by the status of the request.
Tags to include information about friendships and follows in your templates.
Integration with AUTH_USER_MODEL.
Validation to prevent common mistakes.
Faster server response time through caching
Requirements
Django 1.4 since v0.9.0 (latest release supporting Django 1.3 is v0.8.3)
Installation
pip install django-friendship
add "friendship" to INSTALLED_APPS and run python manage.py migrate.
Use the friendship manager in your own views, or wire up the URLconf to include the builtin views:
urlpatterns = [ ... url(r'^friendship/', include('friendship.urls')) ... ]
Usage
django-friendship provides a free API that gives you several ways to create and manage friendship requests or follows in your views. Add the following at the top of your views.py:
from django.contrib.auth.models import User from friendship.models import Friend, Follow
Getting Data about Friendships
List all of a user’s friends: Friend.objects.friends(request.user)
List all unread friendship requests: Friend.objects.unread_requests(user=request.user)
List all unrejected friendship requests: Friend.objects.unrejected_requests(user=request.user)
Count of all unrejected friendship requests: Friend.objects.unrejected_request_count(user=request.user)
List all rejected friendship requests: Friend.objects.rejected_requests(user=request.user)
Count of all rejected friendship requests: Friend.objects.rejected_request_count(user=request.user)
List of all sent friendship requests: Friend.objects.sent_requests(user=request.user)
Test if two users are friends: Friend.objects.are_friends(request.user, other_user) == True
Getting Data about Follows
List of a user’s followers: Follow.objects.followers(request.user)
List of who a user is following: Follow.objects.following(request.user)
Managing Friendships and Follows
Create a friendship request:
other_user = User.objects.get(pk=1) Friend.objects.add_friend( request.user, # The sender other_user, # The recipient message='Hi! I would like to add you') # This message is optionalLet the user who received the request respond:
from friendship.models import FriendshipRequest friend_request = FriendshipRequest.objects.get(pk=1) friend_request.accept() # or friend_request.reject()
To remove the friendship relationship between request.user and other_user, do the following:
Friend.objects.remove_friend(request.user, other_user)
Make request.user a follower of other_user:
Follow.objects.add_follower(request.user, other_user)
Templates
You can use django-friendship tags in your templates. First enter:
{% load friendshiptags %}
Then use any of the following:
{% friends request.user %}
{% followers request.user %}
{% following request.user %}
{% friend_requests request.user %}
Signals
django-friendship emits the following signals:
friendship_request_created
friendship_request_rejected
friendship_request_canceled
friendship_request_accepted
friendship_removed
follower_created
following_created
follower_removed
following_removed
Contributing
Development takes place on GitHub. Bug reports, patches, and fixes are always welcome!
Metadata
Release files for django-friendship 1.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| django-friendship-1.5.0.tar.gz | 17.7 kB | Without provenance | Details for django-friendship-1.5.0.tar.gz |
Release files / django-friendship-1.5.0.tar.gz
| Download URL | django-friendship-1.5.0.tar.gz |
|---|---|
| Size | 17.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
414f367802f033d90f443b596d07d82776a58fc910a9d53276f1d808aabf4bdf
|
|
BLAKE2b-256 checksum How to use checksums |
fa72079f428dcc91616ac96977bd693186aa328f670504c6a86020b9cf8624d6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for django-friendship 1.5.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.