第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Django 中自定義默認(rèn)的 auth 登錄表單?

如何在 Django 中自定義默認(rèn)的 auth 登錄表單?

守著一只汪 2021-12-17 15:39:57
你如何自定義Django中的默認(rèn)登錄表單?# demo_project/urls.pyfrom django.contrib import adminfrom django.urls import include, pathurlpatterns = [    path('', include('pages.urls')),    path('users/', include('users.urls')), # new    path('users/', include('django.contrib.auth.urls')), # new    path('admin/', admin.site.urls),]<!-- templates/registration/login.html -->    <h2>Login</h2>    <form method="post">    {% csrf_token %}    {{ form.as_p }}    <button type="submit">Login</button>    </form>上面的代碼有效,但我需要自定義 {{form.as_p}} 那個表單在哪里或者可以被覆蓋?謝謝您的幫助。
查看完整描述

3 回答

?
蠱毒傳說

TA貢獻1895條經(jīng)驗 獲得超3個贊

您可以覆蓋默認(rèn)的身份驗證表單


像這樣


from django.contrib.auth.forms import AuthenticationForm, UsernameField


from django import forms



class UserLoginForm(AuthenticationForm):

    def __init__(self, *args, **kwargs):

        super(UserLoginForm, self).__init__(*args, **kwargs)


    username = UsernameField(widget=forms.TextInput(

        attrs={'class': 'form-control', 'placeholder': '', 'id': 'hello'}))

    password = forms.CharField(widget=forms.PasswordInput(

        attrs={

            'class': 'form-control',

            'placeholder': '',

            'id': 'hi',

        }

))

在 url.py 中,您可以像這樣傳遞此自定義身份驗證表單


from django.contrib.auth import views


from myapp.forms import UserLoginForm

urlpatterns = [


    path(

        'login/',

        views.LoginView.as_view(

            template_name="login.html",

            authentication_form=UserLoginForm

            ),

        name='login'

)

]

此外,您可以覆蓋登錄模板


并根據(jù)您的要求自定義模板


<form method="post">

    {{ form.non_field_errors }}

    <div class="form-group">

        

        <label for="{{ form.username.id_for_label }}">Username:</label>

        {{ form.username }}

        {{ form.username.errors }}


    </div>

    <div class="form-group">

       

        <label for="{{ form.password.id_for_label }}">Password:</label>

        {{ form.password }}

        {{ form.password.errors }}

    </div>

    <button type="submit">Login</button>

</form>


查看完整回答
反對 回復(fù) 2021-12-17
?
紫衣仙女

TA貢獻1839條經(jīng)驗 獲得超15個贊

您可以通過覆蓋/編輯templates/registration/login.html來自定義您的表單呈現(xiàn),如下所示。


例如,只有您可以根據(jù)需要更改 css 樣式和格式。


<h2>Login</h2>

<form method="post">

    {{ form.non_field_errors }}

    <div class="fieldWrapper">

        {{ form.username.errors }}

        <label for="{{ form.username.id_for_label }}">Username:</label>

        {{ form.username }}

    </div>

    <div class="fieldWrapper">

        {{ form.password.errors }}

        <label for="{{ form.password.id_for_label }}">Password:</label>

        {{ form.password }}

    </div>

    <button type="submit">Login</button>

</form>

您也可以遍歷表單的字段


<h2>Login</h2>

<form method="post">

    {% for field in form %}

        <div class="fieldWrapper">

            {{ field.errors }}

            {{ field.label_tag }} {{ field }}

            {% if field.help_text %}

            <p class="help">{{ field.help_text|safe }}</p>

            {% endif %}

        </div>

    {% endfor %}

    <button type="submit">Login</button>

</form>


查看完整回答
反對 回復(fù) 2021-12-17
?
慕田峪4524236

TA貢獻1875條經(jīng)驗 獲得超5個贊

從問題中,我假設(shè)您想更改 html 模板的外觀而不是 python 表單類。在這種情況下,您需要做的就是包含具有匹配名稱和 ids 屬性的輸入類型字段,這是默認(rèn)的 django-auth 表單所期望的。您可以使用以下步驟實現(xiàn)此目的。

  1. 在渲染時渲染模板(使用 {{form.as_p}})。

  2. 檢查元素并檢查用戶名、密碼和提交按鈕的名稱和默認(rèn)身份驗證表單生成的 ID。

  3. 使用您自己的自定義樣式重新創(chuàng)建相同的標(biāo)簽。

它類似于以下內(nèi)容:

<form method="POST">

  {% csrf_token %}

  <input type="input" class="form-control" name="username" id="inputEmail" placeholder="Username" required >

  <input type="password" class="form-control" name="password" id="inputPass" placeholder="Password" required>

  <button type="submit" style="opacity: 1 !important;">Login</button>

  <a href="/password_reset">Reset Password</a>

</form>

在此之后,您可以發(fā)揮您的想象力并根據(jù)您的要求設(shè)計登錄表單。


希望這可以幫助。


查看完整回答
反對 回復(fù) 2021-12-17
  • 3 回答
  • 0 關(guān)注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號