問題タブ [django-authentication]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Django : User クラスにプロパティを追加します。実行時に変更し、 UserManager.create_user
さまざまな複雑な理由から [1]、Django User クラスに追加のプロパティを追加する必要があります。
これを行うには、プロファイルも「継承」方法も使用できません。( Django でカスタム フィールドを使用して User モデルを拡張するのと同様)
だから私がやっていることは、私の local_settings ファイルに User クラスを含めることです。そこにプロパティを追加します。
おそらく驚くべきことに、これは多くの場合に機能するようです。しかし、UserManager.create_user() から新しいユーザーを作成するときではありません。したがって、 UserManager.create_user() メソッドの代わりにパッチを当てる必要があります。このソース (contrib.auth.models.py 内) を見ると、ユーザーを作成するために使用するクラスが、直接参照されるのではなく、UserManager.model というプロパティに保持されていることがわかります。
行はこれです:
user = self.model(None, username, '', '', email.strip().lower(), 'placeholder', False, True, False, now, now)
問題は、この self.model (User クラスへの参照が含まれていると思われます) が、パッチを適用したバージョンではないように見えることです。
それで、UserManagerの場合、このself.modelがどこに設定されているか知っている人はいますか? そして、その時点でコードが local_settings を通過していないため、 User クラスへのパッチが存在しないと仮定するのは正しいでしょうか? そして、クラスにパッチを当てるためのより良い場所があれば?
乾杯
フィル
【1】好奇心を満たす。User クラスがデータベース内の別の既存のテーブルを使用するようにする必要があります。これには、追加のフィールドと制約があります。
更新:将来の参考のために、プロキシモデルは、Djangoが私が必要とするものをサポートする方法であるようです:http://code.djangoproject.com/ticket/10356
python - django と appengine のモデル クラス間でのコードの再利用
Google Appengine で動作するカスタム django.auth User クラスを作成しましたが、かなりの量のコピーされたコード (実質的にすべてのメソッド) が含まれます。
appengine と django には独自のメタクラス マジックを備えた異なるデータベース モデルがあるため、サブクラスを作成することはできません。
だから私の質問はこれです: django.auth の User クラスからメソッドをコピーするエレガントな方法はありますか?
django - ローカルサイトアカウントのないdjangoのOpenID
私はDjangoサイトで作業しています.Djangoサイトでは、認証部分がStack Overflowの仕組みとまったく同じように機能することを望んでいます. 新しいユーザーがサイトにアクセスし、[新しいアカウントを作成] をクリックして OpenID プロバイダーを選択し、認証を受けると、ユーザー名として「openiduser4356」などを使用してアカウントが作成されます。その後、ユーザーは設定に移動して、ユーザー名を好きなように変更できます。私は、いかなる種類のローカル アカウント サインアップも望んでいません。
私は一日中 django-authopenid を機能させるのに費やしましたが、このプラグインが機能する唯一の方法は、既存のアカウントに OpenID ID を追加することです。django-authopenid がインストールされている場合、django-registration もインストールされていない限り、サイトを実行することさえできません...
このことと格闘して、自分のやりたいことを実行する前に、この種のことが可能かどうか、または良いアイデアかどうかをすぐに知りたいと思います。django 用の OpenID プラグインが他にもいくつかあることに気付きました。私がやろうとしていることを行うのに、それらのどれかがより優れていますか?
django - Djangosログインフォームでユーザー名を事前設定するには?
既存のソリューションに不満を感じた後、Django 用の OpenId プロバイダーを作成しました。
誰かがどこかでhttp://tejp.de/users/abc/として自分自身を認証したいと思っていて、そのためにログインする必要がある場合、ユーザー名が「abc」にプリセットされたログインフォームを表示したいと思います。のような標準関数は、このためのパラメーターを提供していないようです。また、ログインビューに手動でredirect_to_login
リダイレクトするときにその値を事前設定する方法もわかりません。django.contrib.auth.views.login
また、テンプレートに追加のパラメーター値を取得する簡単な方法がないように思われるため、そこにプリセット値を挿入することができます。
ログインフォームにユーザー名を自動的に入力する方法はありますか? 可能であれば、これには通常のログイン ビューを使用したいと思います。すべてのログイン コードをコピーして貼り付け、必要な変更を編集するのではありません。
python - Django にダウンロード可能なファイルを提供させる
サイトのユーザーが、直接ダウンロードできないようにパスが隠されているファイルをダウンロードできるようにしたい。
たとえば、URL を次のようにしたいと考えています。http://example.com/download/?f=somefile.txt
サーバー上では、ダウンロード可能なすべてのファイルがフォルダーにあることがわかっています/home/user/files/
。
URLを見つけて表示するのではなく、Djangoにそのファイルをダウンロード用に提供させる方法はありますか?
django - Djangoのpermission_requiredデコレータが、すでにログインしているユーザーをログインページにリダイレクトせず、メッセージを表示するようにするにはどうすればよいですか?
Djangoのpermission_requiredデコレータで、すでにログインしているユーザーをログインページにリダイレクトせずに、権限が不十分であるなどのメッセージを表示するにはどうすればよいですか?
ありがとうございました。
django - Djangoサイトにサブドメインを使用する場合、ローカルホスト上のサブドメイン間でdjangoログインを共有するにはどうすればよいですか?
同じユーザーセッションを次の場所にまたがらせたい:site.com
sub1.site.com
sub2.site.com
Djangoでこれを行うにはどうすればよいですか?デフォルトの認証ユーザーパッケージでは、ユーザーは毎回異なるセッションで3つのサイトすべてにログインする必要があるようです。同じログインCookieとセッションIDをどのように共有できますか?
更新:settings.pyでSESSION_COOKIE_DOMAIN値を使用すると、本番サイトでは機能するようですが、localhost/devサーバーでは機能しません。ローカルホストのサブドメインでどのように機能させるのですか?SESSION_COOKIE_DOMAINを本番Webサイト名に変更するか、「。localhost」django authログインが完全に機能しなくなると(ログインできなくなり、ローカルホストにCookieが作成されません)。
django - (Django) 異なるドメインにある 2 つのサイト間で認証を共有する
foo.com と bar.com という 2 つのサイトがあり、どちらも Django ベースです。一次登録は foo.com で行われ (メイン ユーザー データベースがここにあることを望みます)、次の 3 つのことを実行したいと考えています。
1) foo.com にログインしたユーザーは、再度ログインしなくても自動的に bar.com にアクセスできます。
2) bar.com に直接ログインするユーザーは、foo.com ユーザー db に対して認証されます。
3) ユーザーが直接 bar.com に登録する必要はありません。
どうすればこれを達成できますか?物事を大幅に簡素化する場合は、bar.com を foo.com のサブドメイン (例: bar.foo.com) にすることができますが、それらは別のサイトでなければなりません。
django - django-ユーザーが自分の情報のみを編集できるように制限する
私はdjangoで遊んでいて、ユーザーがURL http:/// localhost:8000 / username /info/を介して自分の情報にアクセスできる小さなアプリを作成しました。http:/// localhost:8000 / username / info / edit /を介してその情報を編集する機能を追加したいが、現在ログインしているユーザー(django.contrib.authを使用)が自分のユーザーのみにアクセスできるようにしたい情報。ビューで次のことを行うことでこれを実現しました(ビュー引数のユーザー名はURLから取得されます)。
したがって、明らかに、ユーザー'johnny'がユーザー'jimmy'に属する情報を、ブラウザーで/ jimmy / info /edit/をポイントするだけで編集することは望ましくありません。上記は機能しますが、セキュリティに関しては、ここで何かが欠落していることが懸念されます。これはこれについて行く正しい方法ですか?ありがとう。
django - たくさんのDjango認証ユーザーをバッチで作成する画面を作成するにはどうすればよいですか?
自分のサイトに多数のDjango認証ユーザーを作成できるヘルパー画面を作成し、それらのアカウントをDjango認証GUIサインアップを介して1つずつ実行した場合とまったく同じ方法でセットアップしたいと思います。これを達成するために、Django authのどのメソッドをビューで使用する必要がありますか?