我一直试图对此做出明确而简单的回答,但我似乎无法从文档或堆栈溢出中提取任何有意义的内容。
我已经实现了Django Registration Redux附带的标准模板,但我似乎无法解决如何更改Redux中默认设置的表单样式和文本副本。
这是我的HTML:
{% extends 'base.html' %}
{% block title %}
Registration Form - {{ block.super }}
{% endblock title %}
{% block content %}
<div class="content-wrapper">
<div class="content">
<div class="pure-g">
<div class="is-center pure-u-1">
<div class="pure-u-1-2 thin-box">
<h1>Registration form</h1>
<form role="form" action="" method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" class="s-button"/>
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock content %}
正如您所看到的,我已经设置了按钮的样式,但没有任何元素可用于样式。 redux数据必须位于某处,但我不知道它在哪里。
SO上有人建议使用crispy表单,但我使用的是pureCSS而不是bootstrap,而且我已经设置了一套我想要使用的表单样式,所以安装具有一组样式的模块似乎有些过分,然后我必须重写。
答案 0 :(得分:1)
如果我理解正确,您可以访问各个字段。要访问它们,您可以获取字段的名称here。
因此,在模板而不是{{form.as_p}}中,您可以使用以下单个字段:
例如{{form.username}}。
如果您还想添加样式,则需要使用以下过滤器: {{form.username | add_some_css:“my_new_class”}}。需要在单独的文件中配置此样式,例如redux_css.py。要使您的模板使用此文件,您需要在{%extends'base.html'%}之后包含以下{%load redux_css%}。
现在你需要创建redux_css.py:
from django import template
register = template.Library()
@register.filter
def add_some_css(field, css):
"""
Adds css to fields in Redux templates
"""
return field.as_widget(attrs={"class":css})
所有这些都应该使你的redux字段(文本输入)的样式如下:class =“my_new_class”
显然你需要创建.css文件并将它们“导入”你的.html文件。
PS您可能还需要访问字段错误,您可以使用{{form.username.erros}}
执行此操作