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通用視圖使用這些權限。問題是它們是特定的,我不知道如何使用它。
謝謝,但我應該在哪個文件中寫入權限mixin? –
@LéoMouyna如果你願意,你可以把它放在你的視圖文件的頂部,或者創建一個名爲permissions.py的新文件並放在那裏。隨你便。 – denvaar
非常感謝您的幫助! 下一步,我怎麼知道這個權限在模板中是否爲真?燙髮是收到的嗎? –