我正在使用默認的 django 身份驗證系統創建用戶登錄。
使用引導模板,我正在創建一個帶有自定義欄位的表單,并且它們作業正常。
問題是,在顯示此表單時,它會呈現顯示 value 屬性而不是我傳遞給它的占位符。
這就是它的外觀: 登錄頁面
登錄.html
<form method="post" action="{% url 'login' %}"> {% csrf_token %}
<img class="mb-4" src="{% static 'images/logo.jpg' %}" alt="" width="100" height="100">
<h1 class="h3 mb-3 fw-normal">Please sign in</h1>
<div class="form-floating">
<input type="text" class="form-control" id="floatingInput" placeholder="[email protected]"
value="{{form.username}}">
<label for="floatingInput">Username</label>
</div>
<div class="form-floating">
<input type="password" class="form-control" id="floatingPassword" placeholder="Password"
value="{{form.password}}">
<label for="floatingPassword">Password</label>
</div>
<div class="checkbox mb-3">
<label>
<input type="checkbox" value="remember-me"> Remember me   <a href="{% url 'password_reset' %}">
Lost password?</a>
</label>
</div>
<button class="w-100 btn btn-lg btn-primary" type="submit">Sign in</button>
<p class="mt-5 mb-3 text-muted">© 2022 all rights deserved</p>
</form>
uj5u.com熱心網友回復:
使用時,{{ form.username }}您將發送str(form.username)到 value 屬性。表單域的__str__方法渲染 HTML。這就是為什么你看到你所看到的。
要解決此問題,您可以 put{{ form.username.initial }}顯示欄位的初始值。
提示:嘗試使用清晰的表單來呈現表單。它更容易,并且更緊湊的語法取決于表單代碼,而不是 HTML。見https://django-crispy-forms.readthedocs.io/en/latest/
另一件事,我認為您缺少name輸入欄位上的屬性。不知道如果沒有它這是否有效。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/438752.html
標籤:html django 形式 验证 django-模板
