Python 向django密码重置表单添加样式

Python 向django密码重置表单添加样式,python,django,django-forms,django-views,django-templates,Python,Django,Django Forms,Django Views,Django Templates,我想在django的默认密码重置表单中添加样式,例如类和占位符 我的url.py中有以下内容 from django.urls import path from . import views from django.contrib.auth import views as auth_views urlpatterns = [ # Password reset paths path('password_reset/', auth_views.PasswordResetVie

我想在django的默认密码重置表单中添加样式,例如类和占位符

我的url.py中有以下内容

from django.urls import path
from . import views
from django.contrib.auth import views as auth_views


urlpatterns = [

    # Password reset paths

    path('password_reset/', auth_views.PasswordResetView.as_view(template_name="main/password_reset.html"),name="reset_password"),
    path('password_reset_sent/', auth_views.PasswordResetDoneView.as_view(template_name="main/password_reset_sent.html"),name="password_reset_done"),
    path('reset_password/<uidb64>/<token>/', auth_views.PasswordResetConfirmView.as_view(template_name="main/reset_password.html"),name="password_reset_confirm"),
    path('reset_password_complete/', auth_views.PasswordResetCompleteView.as_view(template_name="main/reset_password_complete.html"),name="password_reset_complete"),
]
在模板中

<form action="" method="POST">
            {% csrf_token %}
            {{form}}
            <input type="submit" name="Send email" class="btn btn-primary" >
        </form>
试着用django脆饼

装置

将其添加到已安装的应用程序并选择样式:

INSTALLED_APPS = [
'crispy_forms',
]
CRISPY_TEMPLATE_PACK = 'bootstrap4'
加载标签

{% load crispy_forms_tags %}
现在您可以设计表单的样式了

{{ form|crispy }}
    
试着用django脆饼

装置

将其添加到已安装的应用程序并选择样式:

INSTALLED_APPS = [
'crispy_forms',
]
CRISPY_TEMPLATE_PACK = 'bootstrap4'
加载标签

{% load crispy_forms_tags %}
现在您可以设计表单的样式了

{{ form|crispy }}
    

尝试使用django crispy表单和/或django小部件调整

尝试使用django crispy表单和/或django小部件调整

使用crispy表单,下面是一篇解释得很好的文章

使用脆的形式,这里有一篇关于它的详细解释文章
是的,您当然可以覆盖django表单

# forms.py

from django.contrib.auth.forms import PasswordResetForm

class UserPasswordResetForm(PasswordResetForm):
    def __init__(self, *args, **kwargs):
        super(UserPasswordResetForm, self).__init__(*args, **kwargs)

    email = forms.EmailField(label='', widget=forms.EmailInput(attrs={
        'class': 'your class',
        'placeholder': 'your placeholder',
        'type': 'email',
        'name': 'email'
        }))

# urls.py

from .forms import UserPasswordResetForm

path('password_reset/', auth_views.PasswordResetView.as_view(
    template_name='main/password_reset.html',
    form_class=UserPasswordResetForm),name='password_reset'),

是的,当然可以覆盖django表单

# forms.py

from django.contrib.auth.forms import PasswordResetForm

class UserPasswordResetForm(PasswordResetForm):
    def __init__(self, *args, **kwargs):
        super(UserPasswordResetForm, self).__init__(*args, **kwargs)

    email = forms.EmailField(label='', widget=forms.EmailInput(attrs={
        'class': 'your class',
        'placeholder': 'your placeholder',
        'type': 'email',
        'name': 'email'
        }))

# urls.py

from .forms import UserPasswordResetForm

path('password_reset/', auth_views.PasswordResetView.as_view(
    template_name='main/password_reset.html',
    form_class=UserPasswordResetForm),name='password_reset'),

我找到了这个解决方案,但我正在检查django是否有其他方法用于此目的,而无需第三方材料,谢谢你的回答如果我找不到其他方法,我会使用它。我认为你需要在模板中加载crispy标记。我认为@Severy指出的是正确的。您可以通过更新widget字段来覆盖密码重置表单。我找到了这个解决方案,但我正在检查django是否有其他方法可以用于此目的,而不需要第三方的东西,谢谢你的回答。如果我找不到其他方法,我会用它。我认为你需要在模板中加载crispy标签。我认为@Severy指出的是正确的。你可以通过更新widget字段来覆盖密码重置表单。这是我一直在寻找的,我会在尝试时向上投票,谢谢。这是我一直在寻找的,我会在尝试时向上投票,谢谢