http://mydomain.com/chat/
ログインしているユーザーをサイドバーに表示したいのにdjangoにチャットアプリがあります
http://mydomain.com
しかし、別のアプリであるメインサイトにログインしているユーザーは望んでいません
どうすればこれを行うことができます
か、それが不可能な場合は他の方法がありますか?
http://mydomain.com/chat/
ログインしているユーザーをサイドバーに表示したいのにdjangoにチャットアプリがあります
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)
これがお役に立てば幸いです。
多分それは最善のアプローチではありません。しかし、データベース ルーターはこのトリックを実行します: https://docs.djangoproject.com/en/dev/topics/db/multi-db/。複数のデータベース (したがって、複数の認証システム) を持つことができます。また、現在実行中のアプリで別のデータベースを使用します。
別の方法として、User モデルを拡張して新しい列を作成し、認証システムを書き換えて、ログインしようとしているユーザーがそれぞれのアプリケーションに登録されているユーザーであるかどうかを確認することができます。