
Product
Introducing Rust Support in Socket
Socket now supports Rust and Cargo, offering package search for all users and experimental SBOM generation for enterprise projects.
django-friendship provides an easy extensible interface for following and friendship
This application enables you to create and manage follows, blocks and bi-directional friendships between users. It features:
AUTH_USER_MODEL
.** Django 3.2 since v1.9.1 **
Previously: Django 1.11+ since v1.7.0 (latest release supporting Django 1.10 is v1.6.0)
pip install django-friendship
"friendship"
to INSTALLED_APPS
and run python manage.py migrate
.urlpatterns = [
...
path('friendship/', include('friendship.urls'))
...
]
Note: If you are migrating from django-friendship v1.6.x
, you'll need to rollback your migrations and fake
migration 0002
$ ./manage.py migrate friendship 0001
$ ./manage.py migrate friendship 0002 --fake
If you're migrating from v1.7.x
, you'll likely have to fake 0003
as well:
$ ./manage.py migrate friendship 0003 --fake
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, Block
Friend.objects.friends(request.user)
Friend.objects.unread_requests(user=request.user)
Friend.objects.unrejected_requests(user=request.user)
Friend.objects.unrejected_request_count(user=request.user)
Friend.objects.rejected_requests(user=request.user)
Friend.objects.rejected_request_count(user=request.user)
Friend.objects.sent_requests(user=request.user)
Friend.objects.are_friends(request.user, other_user) == True
Follow.objects.followers(request.user)
Follow.objects.following(request.user)
Block.objects.blocked(request.user)
Block.objects.blocking(request.user)
Block.objects.is_blocked(request.user, other_user) == True
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 optional
from friendship.models import FriendshipRequest
friend_request = FriendshipRequest.objects.get(from_user=request.user, to_user=other_user)
friend_request.accept()
# or friend_request.reject()
request.user
and other_user
, do the following:Friend.objects.remove_friend(request.user, other_user)
Follow.objects.add_follower(request.user, other_user)
Block.objects.add_block(request.user, other_user)
Block.objects.remove_block(request.user, other_user)
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 %}
{% blockers request.user %}
{% blocking request.user %}
django-friendship
emits the following signals:
Development takes place on GitHub. Bug reports, patches, and fixes are always welcome!
REVSYS can help with your Python, Django, and infrastructure projects. If you have a question about this project, please open a GitHub issue. If you love us and want to keep track of our goings-on, here's where you can find us online:
FAQs
django-friendship provides an easy extensible interface for following and friendship
We found that django-friendship demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket now supports Rust and Cargo, offering package search for all users and experimental SBOM generation for enterprise projects.
Product
Socket’s precomputed reachability slashes false positives by flagging up to 80% of vulnerabilities as irrelevant, with no setup and instant results.
Product
Socket is launching experimental protection for Chrome extensions, scanning for malware and risky permissions to prevent silent supply chain attacks.