在 django 中设置自定义用户注册表单的样式
Posted
技术标签:
【中文标题】在 django 中设置自定义用户注册表单的样式【英文标题】:Styling the custom user registration forms in django 【发布时间】:2019-10-02 10:43:36 【问题描述】:我创建了自定义用户注册。我想使用输入占位符和类名来设置它们的样式。
models.py
from django.contrib.auth.models import AbstractUser
from django.db import models
class CustomUser(AbstractUser):
username=models.CharField(max_length=30, unique=True)
email=models.EmailField()
password1=models.CharField(max_length=30)
highestQualification=models.CharField(max_length=50)
def __str__(self):
return self.email
这就是我想使用输入字段样式和占位符设置我的 signup.html 的方式。
<!DOCTYPE html>
<html>
<head>
<style>
.container
position: relative;
input
padding: 12px;
border: 1px solid gray;
input:hover
opacity: 1;
</style>
</head>
<body>
<div class="container">
<form method="post">
<div class="row">
<div class="col">
<input type="text" name="username" placeholder="Username" required>
<input type="email" name="email" placeholder="Email" required>
<input type="password" name="password1" placeholder="Password" required>
<input type="text" name="highestQualification" placeholder="Highest qualification" required>
<input type="submit" value="Sign up">
</div>
</div>
</form>
</div>
</body>
</html>
注册表单的基本版本(无样式)如下所示。 注册.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
% block title %Sign Up% endblock %
% block content %
<h2>Sign up</h2>
<form method="post">
% csrf_token %
form.as_p
<button type="submit">Sign up</button>
</form>
% endblock %
</head>
<body>
</body>
</html>
想知道在哪里提到输入字段的样式类名称和占位符。
【问题讨论】:
这里是您关于占位符问题的答案:***.com/questions/4101258/… 因为您所有的样式类都在包装表单元素的 元素中,所以我不明白有什么问题。<div class="col"> form.as_p </div>
做你想做的事。如果您需要对表单进行更细粒度的控制,请不要使用form.as_p()
方法,请参阅here
【参考方案1】:
您可以在小部件中传递所有属性。
name = forms.CharField(
label=_('Person Name'),
required=True,
error_messages=
'required': _('Please Enter Person Name!')
,
widget=forms.TextInput(attrs='class': 'form-control', 'placeholder': _('Enter Person Name'),
'data-msg': _('Starred fields must be filled.'))
)
email = forms.EmailField(
label=_('Person Email'),
required=True,
error_messages=
'required': _('Please Enter Person Email!')
,
widget=forms.EmailInput(attrs='class': 'form-control', 'placeholder': _('Enter Person Email'),
'data-msg': _('Starred fields must be filled.'))
)
new_password = forms.CharField(
required=True,
widget=forms.PasswordInput(attrs='class': 'form-control', 'placeholder': _('Enter New Password'),
'data-msg': _('Starred fields must be filled.')),
label=_('New Password'),
error_messages=
'required': _('New Password is required!')
)
【讨论】:
以上是关于在 django 中设置自定义用户注册表单的样式的主要内容,如果未能解决你的问题,请参考以下文章
Joomla v1.6 - 如何在控制器中设置自定义成功消息?