我在 django 中有聊天应用程序,http://mydomain.com/chat/
我想在侧边栏中显示登录的用户
但我不希望在http://mydomain.com
不同应用程序的主站点上登录的用户
我该怎么做,
或者如果不可能,还有其他方法可以做到吗?
我在 django 中有聊天应用程序,http://mydomain.com/chat/
我想在侧边栏中显示登录的用户
但我不希望在http://mydomain.com
不同应用程序的主站点上登录的用户
我该怎么做,
或者如果不可能,还有其他方法可以做到吗?
我正在考虑这两个应用程序都在同一个项目中,并且您正在使用相同的通用身份验证模块。(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)
我希望这很有用。
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.