我非常希望我的前端同事能够处理CSS和其他前端的事情--事实上,django的设计原则就是这种分离,他们可以修改模板,而不需要我修改代码。然而,修改表单的唯一方法似乎往往是在后端(在视图、模型或表单中)。对于包提供的视图(例如注册),这甚至更麻烦,因为这常常是对提供的python代码的唯一修改。
在registration/login.html中(它是一个模板,所以我不介意提供我自己的),我有以下内容
<form method="post" action=".">
{% csrf_token %}
{{ form.errors }}<br>
{{ form.username.errors }}
<label for="{{ form.username.id_for_label }}"></label> {{ form.username }}<br>
{{ form.password.errors }}
<label for="{{ form.password.id_for_label }}"></label> {{ form.password }}
<br>
<input class="btn btn-success" type="submit" value="Me connecter" />
<input type="hidden" name="next" value="{{ next }}" />
</form>我非常喜欢占位符文本(例如,密码字段中的“密码”一词是浅灰色的)。所以我发现自己制作了一个forms.py,这样我就可以写
password1 = forms.CharField(
label=_("Password"),
widget=forms.PasswordInput(attrs={'placeholder': 'password', ...每当前端的人想要以一种形式改变一些东西时,这种情况就会不断重复,这不可能是正确的。
为了清楚起见,我想更改模板,以便我们有
{{ form.password.errors }}
<label for="{{ form.password.id_for_label }}"></label> {{ form.password }}相反,我们可以编写一些内容,即html、css和表单变量的内容。像这样的事情(这不对):
{{ form.password.errors.text }}
<label for="{{ form.password.id_for_label }}"></label>
<input id="{{ form.password.id_for_label }}"
name="{{ form.password.name }}"
placeholder="password"
type="password" />也许需要一个变体,但我不明白为什么我没有看到过这样的例子。
关于django,我缺少什么,这样这样的前端任务就不需要后端干预?
发布于 2015-05-28 11:47:00
在征询了几位同事的意见后,似乎最有可能的做法是
{{ form.password.errors }}
<label for="{{ form.password.id_for_label }}"></label>
<input id="{{ form.password.id_for_label }}"
name="{{ form.password.name }}"
placeholder="password"
type="password" />这是一个合理的平衡,让django来完成这项工作,并且对包中的未来更改保持健壮,而不是需要包用户进行大量修改。这就是我们现在所做的。
可以编写模板筛选器。对于我来说,这不在本周的活动范围之内,但如果你能写出这样的东西,那肯定是很棒的:
{{ form.password.errors }}
{{ form.password | attrs placeholder="password" }}https://stackoverflow.com/questions/30443343
复制相似问题