my Django应用程序中的在线登录用户出现问题
一如既往,我正在努力改进我的my Django应用程序中的在线登录用户出现问题,django,django-models,django-views,django-users,Django,Django Models,Django Views,Django Users,一如既往,我正在努力改进我的Django应用程序,我想创建一个Django模块,它可以显示所有登录的用户 这是我的模型类LoggedUser: class LoggedUser(models.Model): user = models.OneToOneField(User, primary_key=True) def __unicode__(self): return self.user.username def login_user(sender,
Django应用程序
,我想创建一个Django模块,它可以显示所有登录的用户
这是我的模型类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)
那么,我认为:
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)
打印查询
返回:[]
还有一个非常简单的模板,用于显示已登录的用户:
{% block content %}
List of logged users :
{% for users in logged_users %}
<li>{{ users }}</li>
{% endfor %}
{% endblock %}
{%block content%}
已登录用户列表:
{对于登录的用户,{u users%}
{{users}}
{%endfor%}
{%endblock%}
问题是:当我尝试在我的软件上连接不同的帐户时,表
LoggedUser
仍然是空的。我的脚本是否出错?可能您的连接没有连接到Django信号
from django.contrib.auth.signals import user_logged_in, user_logged_out
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)
为什么您的信号连接在模型内部definition@iklinac它应该在我的视图函数中设置?这充其量只是猜测,但要去掉它们前面的缩进:)这样它们就在类之外,但如果它们在类之外,
将不定义登录的用户
?功能也应在模型之外我必须导入Django信号吗?因为未定义登录的用户。