更改django登录表单默认显示label,并且添加默认值initial,label和initial无效问题

class LoginForm(forms.Form):
    username = forms.CharField(label='账号', initial='用户名/邮箱')
    password = forms.CharField(label='密码', widget=forms.PasswordInput)

更改login.html如下

因为我是要用手机号码登录的,但登录表单只可以显示用户名,很明显不符合需求

不再使用默认的form.as_p(这样可以自己添加默认值,更改显示信息)


分享一下为什么用了label和initial但是没有效果

其实django文档写的很清楚,简单来说,就是这个表单默认绑定了某个model,django不支持有绑定的表单显示默认并更改

https://docs.djangoproject.com/zh-hans/2.2/ref/forms/fields/

但是你可以输出一下原来的as_p输出了什么,然后稍微改一下对应login.html改就可以按照自己的意愿使用了

(先进入shell)

python manage.py shell
import django
from account.forms import LoginForm
a=LoginForm()
print(a)

一开始为了方便使用了django自带的登录方式(应用名/registration/login.html),导致显示的登录默认只有username,password(如果使用中文提示信息,只会显示用户名,密码两个条形框)

你可能感兴趣的:(Python,django)