質問

私は最新の製品でdjangoを使用しています(そして学習)しています、そして私はちょうどインストールして使用し始めました Django-Registration ユーザーが自動登録できるようにするアプリ。

すべてがうまく機能していますが、すべての新しいユーザーを特定のグループに割り当てることを考えています(すでに作成されています)。

これどうやってするの?このアプリに関するドキュメントはひどいです、IMO。

Django-Registrationアプリの使用を開始するモデルや構成を作成しませんでした。

役に立ちましたか?

解決

まず、私はDR(Django-Registration)の専門家ではなく、実際に質問で言及したために実際にチェックアウトしました。だから、他の誰かがより良い答えを持っているなら、それを提出してください。とにかく、ここに行きます。

ユーザー(またはDRが呼び出すように「プロファイル」が作成される方法)が作成されている方法が、登録.models.registrationmanagerにあるcreate_inactive_user関数にあることに気付きました。したがって、その後のこの関数では:

new_user.is_active = False
new_user.save()

次のようなものを追加できます。

default_group = Group.objects.get(name=WHATEVER_THE_GROUP_NAME_IS)
user_group, is_created = UserGroup.get_or_create(user=new_user)
user_group.group = default_group
#user_group.groups.add(default_group)   # Django ver. 1.7+
user_group.save()

同じユーザー名で複数のユーザーを作成できるとは思わないので、get_or_createなしではおそらくできますが、申し訳ありませんが安全です。

この方法により、DRファイル(これは最善のことではないかもしれません)を編集し、特定のもの(デフォルトのグループ名など)のハードコードを作成しますが、オフポイントを踏むのに適しているはずです。

詩デフォルトのグループ名は、settings.pyファイルにある変数である可能性があります。これにより、よりアクセスしやすくてきれいになります。例:

settings.py:
DEFAULT_GROUP_NAME = 'YOUR GROUP NAME'

registration/models.py:
default_group = Group.objects.get(name=settings.DEFAULT_GROUP_NAME)

とにかく、それが役立つことを願っています。

他のヒント

これは私を夢中にさせていたので、私はこのためにフォークを作ることになりました。

https://github.com/kcunning/django-registration

基本的に、settings.pyファイルに次のものを追加します。

登録_DEFAULT_GROUP_NAME = "GroupName"

登録モジュールを介して追加されたユーザーは、作成時にそのグループが与えられます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top