2017-06-14 39 views
0

我一直在瀏覽django文檔,但到目前爲止,我嘗試過的所有內容都不適合我。我試圖做到這一點,如果用戶輸入網址到某個頁面,他們還沒有登錄,然後他們被重定向到登錄頁面,給他們一個彈出式錯誤消息,說他們沒有訪問頁面,直到他們已經登錄。如何在django中添加警報彈出框?

下面是從views.py的一小段代碼

def home(request): 
    if request.session.test_cookie_worked(): 
     return render(request, 'page/home.html') 
    else: 
     return render(request, 'page/login.html') 

一切正常,除了如果他們被重定向到登錄頁面的錯誤信息不會彈出。我已經看過其他堆棧溢出問題,人們問這個問題與此類似,但這些問題似乎也不適用於我。有什麼建議?

回答

0

以下是我如何做到這一點。

首先,如果視圖代碼確定彈出窗口應顯示出來,叫render()與上下文中的一個名爲標誌:

return render(request, 'page/home.html', {'some_flag': True}) 

然後,在你的頁面模板,如果設置了標誌,顯示<div>元素:

{% if some_flag %} 
    <div id="some_flag" title="Some Flag"> 
     <p>Some Text Here</p> 
    </div> 
{% endif %} 

另外在頁面模板,在<head>部分,創建一個JavaScript函數來顯示<div>作爲一個彈出式對話框:

<head> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $(function() { 
       $("#some_flag").dialog({ 
        modal: true, 
        closeOnEscape: false, 
        dialogClass: "no-close", 
        resizable: false, 
        draggable: false, 
        width: 600, 
        buttons: [ 
         { 
          text: "OK", 
          click: function() { 
          $(this).dialog("close"); 
          } 
         } 
        ] 
       }); 
      }); 
     }); 
    </script> 
</head> 

此解決方案還要求您使用jQuery庫。

我確信這樣做有缺點,但它適用於我。

+0

哦,好吧,我明白謝謝你。無論如何,這可以在html頁面的腳本中調用一個函數嗎?因此,不是創建對話框警報框,而是調用