2012-09-12 11 views
29

ユーザーグループのユーザー権利を実装する必要があります(Facebookグループとよく似ています)。たとえば、各グループには、can_post、can_delete、can_banなどの権利を持つメンバーを含めることができます。もちろん、1人のユーザーは多くのグループのメンバーになることができ、グループには異なる権限を持つ多くの異なるユーザーが存在することがあります。 この機能にはどのようなモデルが必要ですか?ユーザーグループとアクセス許可

答えて

59

Djangoにはグループシステムが組み込まれています。このような質問がある場合は、searching the Django docsをお薦めします。

django.contrib.authアプリを使用している限り、グループにアクセスできます。これらのグループに権限を割り当てることができます。

from django.contrib.auth.models import User, Group, Permission 
from django.contrib.contenttypes.models import ContentType 

content_type = ContentType.objects.get(app_label='myapp', model='BlogPost') 
permission = Permission.objects.create(codename='can_publish', 
             name='Can Publish Posts', 
             content_type=content_type) 
user = User.objects.get(username='duke_nukem') 
group = Group.objects.get(name='wizard') 
group.permissions.add(permission) 
user.groups.add(group) 
+4

このファイルには通常このコードを入れますか? –

+0

上記のコードはレコードを作成するので、シェル内で実行することができます。アプリを配布したり配備したりする場合は、この初期データが保存されるように設定する必要があります。あなたはウェブサイトの管理者の中でそれらを変更することもできると思います。 –

+0

私は同じことを鉱山でやった、それをシェルや管理者で行い、アプリケーションの将来のインスタンスにロードするためのフィクスチャを生成した。返信ありがとう –

関連する問題