1

http://mydomain.com/chat/
ログインしているユーザーをサイドバーに表示したいのにdjangoにチャットアプリがあります

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

多分それは最善のアプローチではありません。しかし、データベース ルーターはこのトリックを実行します: https://docs.djangoproject.com/en/dev/topics/db/multi-db/。複数のデータベース (したがって、複数の認証システム) を持つことができます。また、現在実行中のアプリで別のデータベースを使用します。

別の方法として、User モデルを拡張して新しい列を作成し、認証システムを書き換えて、ログインしようとしているユーザーがそれぞれのアプリケーションに登録されているユーザーであるかどうかを確認することができます。

于 2013-09-09T03:22:01.200 に答える