すべての従業員にツールバーが表示されないようにするには、かなりの余分な作業が必要です。あなたは許可するコンテンツを編集できるように権限を適用することができます。つまり、ユーザーはDjango CMSの組み込み機能を最大限に活用することができます。これは素晴らしい方法です。
このルートを使用したくない場合は、article
モデル用に独自のミニ管理者を作成する必要があります。私はすぐに、あなたが正しい方向に向けるのを助けるために、これにどのようにアプローチできるかについてのアイデアを一緒に投げかけました。 Djangoの管理者などの確認ページである可能性がビューを削除する
<section>
{% if show_controls %}
<div class="controls">
<a href="/path/to/delete/[article-pk]" class="btn btn-danger">Delete</a>
<a href="/path/to/edit/[article-pk]" class="btn btn-default">Edit</a>
</div>
{% endif %}
<article>
...
</article>
</section>
パス:のような記事テンプレートで
from django.views.generic import DetailView
from .models import Article
class ArticleView(DetailView):
context_object_name = 'article'
model = Article
template_name = 'path/to/article.html'
def get_context_data(self, **kwargs):
context = super(ArticleView, self).get_context_data(**kwargs)
context['show_controls'] = (self.request.user.is_authenticated() and
context[self.context_object_name].article == self.request.user)
return context
:
まず、あなたの記事ビューは次のようになります。線に沿ってテンプレートと
from django.contrib.auth.decorators import login_required
from django.core.exceptions import PermissionDenied
from django.shortcuts import get_object_or_404, redirect, render
from .models import Article
@login_required
def delete_article(request, article_pk):
if request.method == "POST":
article = get_object_or_404(Article, pk=article_pk)
if request.user != article.author:
raise PermissionDenied
article.delete()
return redirect('/redirect/url')
else:
context = {}
...
return render(request, 'path/to/confirm/delete.html', context)
:だからあなたのような見解を持っていると思います
<section>
<form method="POST">
{% csrf_token %}
<p>Are you sure you want to delete?</p>
<input type="submit" value="Delete">
</form>
</section>
あなたは、そのページにユーザーをナビゲートし、編集ページのために同様のセットアップを作成したいですフィールドを修正して送信できるようなフォームがあります。
フロントエンドのWebページにある削除/編集/追加というボタンがあり、認証されたユーザーだけがこれを見ることができますか?だから、それはカスタム管理者/結果ページのようなものですか?ちょうどDjangoのCMSダブルクリックに固執するだけで、オプションはすべて自分自身に表示されますか? – tdsymonds
私は会社のウェブサイトで働いているので、すべての従業員は記事を追加/削除/編集できるはずです。しかし、彼らはこれを行うためにバックエンドに行く必要はありません。私は彼らにすべてのオプションを持つツールバーを見せたくありません。私はこれが私の質問を明確にすることを願っています – kaufi02