2016-03-29 5 views
0

私はメタのカスタム権限を持っている:私は私の意見でDjangoのカスタム権限が認識されませんか?

is_auth_perm = Permission.objects.get(codename='is_authenticated') 
request.user.user_permissions.add("is_auth_perm") 

をしようとするときしかし、私は許可が私は移行を行うた後でも、存在しないというエラーが出ます

class Meta(): #extra bit of info 
    model = User 
    permissions = (
     ("has_uploaded", ("Has uploaded")), 
     ("is_authenticated", ("Is authenticated")), 
    ) 
    fields = ('email','emailConfirm','password1','biography','research_place','studies') 

とsyncdb。何か間違っているのですか?

+1

あなたは文字列としてis_auth_permを使用しています。これはここの入力コードまたはコードの.add( "is_auth_perm") 'ですか? – danielcorreia

+0

@danielcorreiaそれに気付いてくれてありがとう、しかし、エラーは特にis_auth_perm =等の行にあるので、エラー全体ではありません。 – swedishfished

答えて

1

最初にデータベースを初期化した後で、モデルに権限を追加しましたか?その場合、移行しても、新しい権限は自動的にデータベースに追加されません。

新しいアクセス許可を追加するには、django-extensionsパッケージのupdate_permissionsmanage.pyコマンドを使用できます。

+0

こんにちは、はい、私の間違いでなければなりません。私はdjango-extensionsをインストールし、settings.pyインストールされたアプリケーションに追加し、コンソールに "python manage.py update_permissions"を実行しました。コマンドを実行しましたが、何も出力しませんでした。しかし、私はまだ "許可照合クエリが存在しません。"エラー? – swedishfished

+1

あなたの質問をもう一度見てから、私はあなたのメタクラスに 'モデル'と 'フィールド'属性があることに気付きました...これは通常、モデルのメタクラスではなくフォームのメタクラスの場合です。あなたのフォームのいずれかにカスタムアクセス権を設定しましたか?もしそうなら、それらをあなたのモデルに移動してから、 'update_permissions'を使って許可を同期させてください。 – Tim

+0

はい、ありがとうございました – swedishfished

関連する問題