2016-08-23 53 views
2

我使用的模態爲django。 (http://bootsnipp.com/snippets/featured/modal-login-with-jquery-effectsdjango如何對待基於模態的登錄/註冊?

但我想知道django如何在模板渲染中處理這個問題。

正如你可以看到上面的url,它只有一個html文件,比如說,login.html

在django views,我有兩個視圖名爲LoginViewSignupView

這些是我認爲的問題。

  1. 每個View會呈現template

    • LoginView - >login.html
    • SignupView - >signup.html

但你可以在上面看到,如果我你sed模式,signuplogin只有一個html文件。我想知道我該如何處理它。

  • 此外,每個view會通過其form,比方說,UserCreationFormCustomLoginForm用於從用戶獲得輸入。但是如果只有一個html文件,那麼forms之間會有衝突嗎?
  • 謝謝。

    +0

    您可以將它全部放在一個視圖中,然後在css中執行視覺效果,或者根據條件隱藏內容的django庫。 –

    +0

    幾年前我有同樣的問題。我已經成功地實現了它。以下是供將來參考的鏈接:[link](http://www.nikhilshirsath.com/blog/post_detail/signup-and-login-in-djangio-through-bootstrap-modal/) –

    回答

    1

    1)您可以將它們都移動到一個視圖中,該視圖返回具有不同名稱的兩個表單。

    signup_form = UserCreationForm() 
    login_form = CustomLoginForm() 
    context = {"signup_form": signup_form, "login_form": login_form, **other_kwargs} 
    return render(request, context, content_type=...) 
    

    2)包含多個表單的頁面沒有問題。由於形式在不同的名字被渲染,一個想法是區分哪些形式被髮布,使用一個隱藏的輸入,所以基本上在你的HTML,你這樣做:

    <form method="POST" action="URL"> 
         input type="hidden" name="form_name" value="login_form" 
         {{ login_form.as_table }}  
         input type="submit"  
    </form> 
    
    <form method="POST" action="URL"> 
         input type="hidden" name="form_name" value="signup_form" 
         {{ signup_form.as_table }}    
         input type="submit"  
    </form> 
    

    您也可以指向的網址爲單個視圖,處理哪些表單是使用POST參數中的form_name鍵提交的。或者你可以讓他們指向其他URL,發送Ajax請求或任何其他你喜歡的方式。