我一直试图对此给出一个清晰、简单的答案,但我似乎无法从文档或堆栈溢出中提取任何有意义的内容。
我已经实现了 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,而且我已经不厌其烦地设置了一组我想使用的表单样式,所以这似乎有点过分了安装具有一组样式的模块,然后我必须覆盖这些样式。
最佳答案
如果我对您的理解正确,您想要访问各个字段。要访问它们,您可以获取字段名称 here .
所以在模板中而不是 {{ form.as_p }} 你可以像这样使用单独的字段:
例如{{ 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 }}
关于css - Django 注册 Redux 自定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36371243/