Comme toujours, j'essaie d'améliorer mon Django application
et je voudrais créer un module Django qui pourrait display all logged users
.Problème avec les utilisateurs connectés en ligne dans mon application Django
C'est ma classe de modèle LoggedUser
:
class LoggedUser(models.Model):
user = models.OneToOneField(User, primary_key=True)
def __unicode__(self):
return self.user.username
def login_user(sender, request, user, **kwargs):
LoggedUser(user=user).save()
def logout_user(sender, request, user, **kwargs):
try:
u = LoggedUser.objects.get(user=user)
u.delete()
except LoggedUser.DoesNotExist:
pass
user_logged_in.connect(login_user)
user_logged_out.connect(logout_user)
Ensuite, j'ai à mon avis:
def ConnectedUsers(request) :
logged_users=[user.user for user in LoggedUser.objects.all()]
print logged_users
context = {
"logged_users":logged_users,
}
return render(request, "UtilisateursConnectes.html", context)
Les print query
retours: []
et un modèle très simple juste pour pour afficher les utilisateurs connectés:
{% block content %}
List of logged users :
{% for users in logged_users %}
<li>{{ users }}</li>
{% endfor %}
{% endblock %}
Le problème est: Lorsque j'essaie de connecter un compte différent sur mon logiciel, la table LoggedUser
est toujours vide. Est-ce que je fais une erreur dans mon script?
Pourquoi le signal se connecte à l'intérieur de la définition du modèle – iklinac
@iklinac Il doit être réglé dans ma fonction de vue? – Deadpool
Ceci est au mieux conjecture mais supprime l'indentation devant eux :) de sorte qu'ils sont en dehors de la classe – iklinac