1
私の「チュートリアルアプリ」では、オブジェクトを作成した後にいくつかの特定の権限を作成しました。オブジェクトの作成者だけが更新または削除できる必要があります。Django - ビューとテンプレートで特定のカスタム権限を使用するにはどうすればいいですか?
私は初心者です。私の方法が醜い場合、私はここで学びます。
ここに私のviews.py
class CreateArticle(LoginRequiredMixin, generic.CreateView):
model = Article
context_object_name = 'article'
template_name = "blog/edit_article.html"
form_class = ArticleForm
def form_valid(self, form):
self.object = form.save(commit=False)
self.object.slug = auto_slug(self.object.titre)
user = User.objects.get(id=self.request.user.id)
self.object.auteur = user
self.object.save()
"""On génère les 2 permissions suivantes :
Modifier l'article dont on est l'auteur
Supprimer l'article dont on est l'auteur"""
content_type = ContentType.objects.get(app_label='blog', model='article')
permission = Permission.objects.create(
codename='edit_article_{0}'.format(self.object.id),
name='Modifier l\'article {0}'.format(self.object.titre),
content_type=content_type
)
user.user_permissions.add(permission)
permission = Permission.objects.create(
codename='delete_article_{0}'.format(self.object.id),
name='Supprimer l\'article {0}'.format(self.object.titre),
content_type=content_type
)
user.user_permissions.add(permission)
messages.success(self.request, "L'article a été crée")
return HttpResponseRedirect(self.get_success_url())
は、だから私は私のUpdateArticleとDeleteArticle汎用ビューでこれらのアクセス許可を使用していました。問題はそれらが特定であり、私はそれを使う方法を知らないということです。
ありがとうございますが、どのファイルにミックスイン許可書を書く必要がありますか? –
@LéoMouynaあなたが望むなら、あなたのビューファイルの一番上に置くか、permissions.pyという新しいファイルを作成してそこに置くことができます。それはあなた次第です。 – denvaar
ありがとうございました! 次の手順では、このアクセス許可がテンプレートに該当するかどうかをどのように知ることができますか?パーマはそれを受け取ったのですか? –