python - Django 模板中的表单自定义
问题描述
我想为下面的表单添加样式(主要目标是更改占位符的文本颜色,因为我的表单是深色的,并且占位符由于其默认的灰色而不可见)我确信必须有某种方法来实现这仅在模板中。
来自 CSS 的片段
::placeholder {
color: aquamarine;
opacity: 1;
}
来自模板的片段
<form action="{% url 'register' %}" class="box" method="POST">
<input type="text" name="username" placeholder="{{form.username.label}}" id=""/>
<input type="text" name="firstname" placeholder="{{form.first_name.label}}" id="" />
<input type="text" name="lastname" placeholder="{{form.last_name.label}}" id=""/>
<input type="text" name="email"placeholder="{{form.email.label}}"id="" />
<input type="text" name="password1" placeholder="{{form.password1.label}}" id=""/>
<input type="text" name="password2" placeholder="{{form.password2.label}}" id=""/>
<input type="submit" value="Submit" />
</form>
这是我为添加新用户(django.contrib.auth.models 用户)而创建的表单。我不确定如何{{form.username}}
在现有表单中使用。如果我只是简单地将其放入{{form.username}}
表单中,它会创建一个没有应用任何样式的新字段。
解决方案
我为这个问题找到了一个肮脏的解决方案。我第一次输入的表格如下所示 -
<form action="{% url 'register' %}" class="box" method="POST">
{{form.username}}
{{form.first_name}}
...
</form>
然后我检查了渲染的模板并窃取了上述代码的 HTML 等价物。我在输入标签中添加了所有必需的属性。它看起来像下面的片段 -
{% csrf_token%}
<input
type="text"
name="username"
maxlength="150"
**placeholder="Username"**
autofocus=""
required=""
id="id_username"
/>
<input
type="text"
name="first_name"
maxlength="30"
**placeholder="First Name"**
id="id_first_name"
/>
...
我知道这可能不是一个完美的解决方案,必须有一种更优雅的方式来处理这种情况。但是,我暂时继续采用这种方法,因为它是服务于目的的。
推荐阅读
- singlestore - MemSQL 支持哪些连接字符串属性?
- sql-server - 减数调用轮函数时的结果
- sql - SQL Server将泰语全名解析为第一个最后一个
- deep-learning - 大小不匹配,m1:[1 x 512],m2:[25088 x 4096] 在 /pytorch/aten/src/TH/generic/THTensorMath.cpp:2070
- reactjs - 将反应应用程序部署到 GitHub 页面中的子文件夹时出现相对路径问题
- python - 访问 Python 模块中包含的静态文件
- php - 为输出值增加价值
- php - Sentry PHP - 确定异常/事件是否实际发送成功
- sql - SQL Server 性能问题
- mysql - 如何修复 500(内部服务器错误)?