0

django-usersと別のテーブルを外部キーとして受け取るパーミッションテーブルを作成したいと思います。そして、それに権限を与えます。models.pyには何が必要ですか?

疑問は2つの別々の質問として伝えることができます:

  1. django-users(ユーザーID)をpermissionsと呼ばれる別のアプリの外部キーとして使用する方法。
  2. syncdbがのpriamryキーとして実行されたときにdjangoによって生成されるtable-idの使用方法

そのテーブル(別のアプリ)、このアプリのアクセス許可の外部キーとして使用されます。

4

3 に答える 3

1

django.contrib.auth の権限機能を使用できない理由はありますか? オブジェクトとテーブルのpermissions特徴を利用する ことで、「グループ X のユーザーはアクション Y を実行する可能性がある」というマトリックスを簡単に作成できます。 MetaGroups

これについて考えれば考えるほど、あなたの実装は追加の利点なしにグループ/権限機能を反映しているように思えます。

詳細については、 https://docs.djangoproject.com/en/1.3/topics/auth/を参照してください。

于 2011-06-11T17:42:49.993 に答える
0

最善の方法は、ユーザー プロファイルを作成することです。これは、ユーザー モデルにリンクできるモデルであり、プロファイル モデルには必要なキーが含まれています。次に、 User.get_profile()を呼び出してモデル オブジェクトを取得し、そのオブジェクトのキーを確認します。

于 2011-06-11T17:28:58.287 に答える
0

モデルについては、.contrib 内の ContentTypes アプリを確認します。(https://docs.djangoproject.com/en/1.3/ref/contrib/contenttypes/) ユーザーへの外部キーを作成するだけです。

from django.contrib.auth.models import User
from django.contrib.contenttypes.models import ContentType

class Permission(models.Model):
    user = models.ForeignKey(User)
    table = models.ForeignKey(ContentType)
    ### the rest of the model.

次に、あなたの見解などで:

perm = Permission()
perm.user = request.user
perm.table = ContentType.objects.get_for_model(TableToAddPermissionFor)
perm.save()
于 2011-06-11T17:42:09.833 に答える