我試圖讓標準Aldryn Newsblog按鈕在我的前端頁面中工作。所以每個用戶都可以添加,刪除和編輯文章(只有他們自己創建的文章,但那不是問題)。這與鏈接的菜單: Menu in the ToolbarDjango CMS Aldryn NewsBlog從前端刪除文章
所以我想在我的模板至極添加一個按鈕觸發編輯,添加或刪除提示:Delete prompt 我希望有人能幫助我。提前致謝。
我試圖讓標準Aldryn Newsblog按鈕在我的前端頁面中工作。所以每個用戶都可以添加,刪除和編輯文章(只有他們自己創建的文章,但那不是問題)。這與鏈接的菜單: Menu in the ToolbarDjango CMS Aldryn NewsBlog從前端刪除文章
所以我想在我的模板至極添加一個按鈕觸發編輯,添加或刪除提示:Delete prompt 我希望有人能幫助我。提前致謝。
如果你真的不希望所有員工都看到工具欄,那麼你正在承擔相當多的額外工作。我仍然認爲這是一個選項,因爲您可以應用權限,以便用戶只能編輯允許的內容,這意味着用戶可以充分利用Django CMS的內置功能,這非常棒。
如果你仍然不想採取這條路線,那麼你將不得不爲你的article
模型建立自己的迷你管理員。在下面,我很快就把你的想法告訴了你,希望能幫助你指出正確的方向。
首先,你的文章觀點應該是這樣的:
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
隨着文章模板,如:
<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>
的路徑刪除視圖可以像Django管理一個確認頁面。所以,你必須像一個觀點:
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>
,那麼你會創建編輯頁面類似的設置,將用戶導航到一個頁面它具有可以修改和提交字段的形式等。
爲了澄清,您希望在前端網頁上顯示刪除/編輯/添加的按鈕,只有經過身份驗證的用戶才能看到該按鈕?所以,這有點像一個自定義的管理/結果頁面?爲什麼不堅持使用Django CMS雙擊並且所有選項都出現在那裏? – tdsymonds
我正在爲我公司的網站工作,所以每個員工都應該能夠添加/刪除/編輯文章。但他們不應該去後端去做這件事。我不希望他們看到帶有所有選項的工具欄。我希望這可以澄清我的問題 – kaufi02