我正在使用Django的身份验证后端,它工作得很好,但我想为用户名和密码字段提供一个自定义CSS类。我一直在努力寻找解决办法,但我在这里或其他任何地方都找不到任何东西。这就是我到目前为止所做的:
project/forms.py:
from django import forms
from django.contrib.auth.forms import AuthenticationForm
class LoginForm(AuthenticationForm):
username = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control form-control-lg'}))
password = forms.CharField(widget=forms.PasswordInput(attrs={'class': 'form-control form-control-lg'}))
project/url.py:
from django.contrib import admin
from django.urls import path, include
from .forms import LoginForm
urlpatterns = [
path('accounts/', include('django.contrib.auth.urls'), {'authentication_form': LoginForm}),
]
accounts/login.html:
<form method="POST">
{% csrf_token %}
<div class="form-group">
{{ form.username }}
{{ form.password }}
<button type="submit" class="btn btn-primary btn-lg btn-block">Sign in</button>
</form>
登录系统正常工作,但我无法显示CSS更改。我检查了用户名和密码字段,但它们根本没有显示在浏览器中。我猜我在什么地方遗漏了什么
不知道如何直接完成,但我使用小部件调整来完成,它工作得很好(还可以完成所有错误通知)。您不需要在表单中设置任何内容,一切都在模板中完成。模板中的行将是:
这将为每个输入字段提供一个单独的类。看看https://github.com/jazzband/django-widget-tweaks
它不起作用的原因是,您添加的{'authentication_form':LoginForm}的路径中包含include(..),这是不可能的,您只需要将其传递到登录url(或覆盖该表单的url):
相关问题 更多 >
编程相关推荐