我在http://mydomain.com/chat/
的django聊天应用
我想在侧栏中显示登录的用户
但我不希望用户登录主网站http://mydomain.com
,这是不同的应用
我怎么能这样做
或者如果不可能有其他方法可以做到吗?
答案 0 :(得分: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)
我希望这很有用。
答案 1 :(得分:0)
也许不是最好的方法。但数据库路由器可以解决这个问题:https://docs.djangoproject.com/en/dev/topics/db/multi-db/。 它允许您拥有多个数据库(因此,多个身份验证系统)。并使用当前正在执行的应用程序使用不同的数据库。
作为替代方案,您可以扩展User模型以创建新列,重写auth系统以检查尝试登录的用户是否是在其相应应用程序中注册的用户。