我有一個名爲dashboard
的應用程序,在這裏我將所有登錄的用戶重定向到用戶添加項目的選項。如何在模板中刪除會話變量在django中完成作業
用戶點擊的形式提交按鈕後,將數據通過POST發送到/dashboard/article/save
URL和數據被存儲之後,該視圖返回到HttpResponseRedirect
show_dashboard
這使得dashboard.html
與會話變量result
。
在儀表板模板文件中,我添加了一個notify.js代碼來向用戶顯示確認。問題是,如果定義了此會話變量,則每次顯示儀表板頁面時,如果用戶沒有添加項目,則會觸發通知。
(我是新來使用Web框架,所以我不知道這一切是如何工作正常)
一些代碼:
儀表板/ models.py:
class Article(models.Model):
id = models.IntegerField(primary_key=True)
ar_title = models.CharField(max_length=25)
ar_data = models.CharField(max_length=500)
user = models.ForeignKey(User,on_delete=models.CASCADE)
def getArticleTitle(self):
return self.title
def getArticleData(self):
return self.title
def getArticleAuthor(self):
return self.user
dashboard/urls.py:
urlpatterns = [
url(r'^$', views.show_dashboard,name='home_dashboard'),
url(r'^profile/save/', views.save_profile,name="save_profile"),
url(r'^newsfeed/', views.get_newsfeed,name="newsfeed",),
url(r'^profile/', views.show_profile,name="show_profile"),
url(r'^article/save/', views.add_new_article,name="add_new_article"),
]
儀表板/ views.py:
@login_required
def show_dashboard(request):
return render(request,'dashboard/dashboard.html',{'form':NewArticleForm()})
def add_new_article(request):
if(request.method == 'POST'):
ar_title= request.POST['ar_title']
ar_data = request.POST['ar_data']
user = request.user
form = NewArticleForm(request.POST)
if(form.is_valid()):
Article.objects.create(ar_title=ar_title,ar_data=ar_data,user=user)
request.session["result"] = "add_article_OK"
return HttpResponseRedirect(reverse('home_dashboard'))
dashboard.html:
{% ifequal request.session.result 'add_article_OK' %}
<script>
$.notify("New article added successfully",
{position:"bottom right","className":"success","autoHide":"yes","autoHideDelay":"3000"});
</script>
{% endifequal %}
現在,我怎麼刪除此會話值已顯示的消息後?我知道del request.session['result']
可以發行,但我可以把它放在這一系列的動作中?