1

我在 django 中有聊天应用程序,http://mydomain.com/chat/
我想在侧边栏中显示登录的用户

但我不希望在http://mydomain.com不同应用程序的主站点上登录的用户


我该怎么做,
或者如果不可能,还有其他方法可以做到吗?

4

2 回答 2

1

我正在考虑这两个应用程序都在同一个项目中,并且您正在使用相同的通用身份验证模块。(django.contrib.auth?)

继承用户模型以创建一个新模型,比如 myuser。

class MyUser(User):
 isChatUser=BooleanField(default=False)

或者,您可以使用带有选项的 charField。

现在您必须显示已通过身份验证并注册为聊天用户的用户。

def isChatUserLoggedIn(user):
 if user.is_authenticated():
  try:
   myuser = MyUser.objects.get(id=user.id)
   return (True if myuser.isChatUser else False)
  except:
   return False
#And then use the following when verifying your user-->
isChatUserLoggedIn(request.user)

我希望这很有用。

于 2013-09-09T04:05:47.717 回答
0

Maybe is not the best approach. But database routers would do the trick: https://docs.djangoproject.com/en/dev/topics/db/multi-db/. it allows you to have multiple databases(thus, multiple auth systems). And use different databases with the app currently being executed.

As an alternative, you can extend the User model to create a new column a rewrite the auth system to check if the user that is trying to login is the user that's registered in it's repective application.

于 2013-09-09T03:22:01.200 回答