python - 无法使用 Bootstrap 设置 Django 默认登录表单的样式

标签 python html css django docker

当我尝试使用自定义 forms.py 文件中的 Bootstrap 设置 Django 默认登录模板的样式时,它不起作用。没有错误,但我仍然看到默认的无样式登录表单。

换句话说,LoginView 似乎根本没有使用 AuthenticationForm。

登录.html

<body>
<h2>Login</h2>
<form method="post">
  {% csrf_token %}
  {{ form.as_p }}
  <button type="submit">Login</button>
</form>
</body>
</html>

表单.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'}))
    password = forms.CharField(widget=forms.PasswordInput(
        attrs={'class':'form-control'}))

url.py

from django.contrib import admin
from django.urls import include
from django.urls import path

from django.contrib.auth.views import LoginView
from django.contrib.auth import views

from myProject.forms import LoginForm

urlpatterns = [

    path("admin/", admin.site.urls),
    path('accounts/login/', LoginView.as_view(),{'template_name':'registration/login.html','authentication_form':LoginForm}),
    path('login/', LoginView.as_view(template_name='registration/login.html'),{'authentication_form':LoginForm})

我已经尝试了几件事,包括对上面的“accounts/login/”和“login/”路径使用不同的语法,因为我认为这可能是我的问题,但它没有任何区别。

我期望通过 Bootstrap 得到什么 What I expect to get with the bootstrap

我仍然得到什么 What I still get

我在 Docker 中运行它,所以每当我做出更改时,我都会:

Docker compose down
Docker compose up

服务器重新启动后我就会看到更改。

感谢期待。

最佳答案

尝试按如下方式重写您的代码:

forms.py

class LoginForm(AuthenticationForm):
    username = forms.CharField(widget=forms.TextInput(attrs={'class':'form-control'}))
    password = forms.CharField(widget=forms.PasswordInput(attrs={'class':'form-control'}))

    def __init__(self, *args, **kwargs):
        super(LoginForm, self).__init__(*args, **kwargs)

urls.py ...

path('accounts/login/', LoginView.as_view('template_name':'registration/login.html','form_class':LoginForm}),
path('login/', LoginView.as_view('template_name':'registration/login.html','form_class':LoginForm}),

其余部分似乎都很好。

关于python - 无法使用 Bootstrap 设置 Django 默认登录表单的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56175113/

相关文章:

python - 在终端中运行任何依赖于 python 的命令/程序时出错

python - Django 1.10 模板 - 在 HTML 模板中打印两个彼此相邻的 python 列表

javascript - 在 .siblings() 上停止动画

javascript - 将 JavaScript Spinner 值从表中提取到电子邮件中

python - 使用 Panda 在 Python 中根据名称查找值之间的关系

python - 没有参数的 Python 2.x 中的 super()

javascript - 应用 z-index 时悬停状态不起作用

html - 不同于 1 或 0 的 CSS 不透明度在 IE11 中不起作用

javascript - 防止在 jeditable 触发器后换行

css - 是否有 CSS 父级选择器?