在 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/… 因为您所有的样式类都在包装表单元素的 元素中,所以我不明白有什么问题。 &lt;div class="col"&gt; form.as_p &lt;/div&gt; 做你想做的事。如果您需要对表单进行更细粒度的控制,请不要使用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 中设置自定义用户注册表单的样式的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django 会话模型中设置自定义字段?

Joomla v1.6 - 如何在控制器中设置自定义成功消息?

如何在 Django 中设置自定义中间件

如何在 django 模板中设置自定义 forloop 起点

怎么在word中设置自定义编号

如何在 Bootstrap 4 和 Sass 中设置自定义按钮文本颜色?