Kilka rzeczy na oko:
follow_request = FollowRequest.objects.create(
sender=request.user,
receiver=user,
is_active=True
)
follow_request.save()
Z tego co wiem, `create()` to skrót na stworzenie obiektu + save, więc ręczne `save()` nie powinno być potrzebne. To samo w kilku innych miejscach.
if not FollowRequest.objects.filter(receiver=user).filter(sender=request.user).first():
->
if not FollowRequest.objects.filter(receiver=user, sender=request.user).exists():
Tutaj:
def has_paid(self, current_date=datetime.date.today()):
To `current_date=datetime.date.today()` zrobi raczej co innego, niż myślisz :) Przeczytaj jak działają domyślne argumenty w Pythonie.
A, no i dodaj .gitignore do repo - takie rzeczy jak db.sqlite3, __pycache__ czy videos/ raczej nie powinny być w repo.