首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django前端设计器定制(不修改视图或窗体)

django前端设计器定制(不修改视图或窗体)
EN

Stack Overflow用户
提问于 2015-05-25 17:33:52
回答 1查看 583关注 0票数 0

我非常希望我的前端同事能够处理CSS和其他前端的事情--事实上,django的设计原则就是这种分离,他们可以修改模板,而不需要我修改代码。然而,修改表单的唯一方法似乎往往是在后端(在视图、模型或表单中)。对于包提供的视图(例如注册),这甚至更麻烦,因为这常常是对提供的python代码的唯一修改。

registration/login.html中(它是一个模板,所以我不介意提供我自己的),我有以下内容

代码语言:javascript
复制
<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,这样我就可以写

代码语言:javascript
复制
password1 = forms.CharField(
    label=_("Password"),
    widget=forms.PasswordInput(attrs={'placeholder': 'password', ...

每当前端的人想要以一种形式改变一些东西时,这种情况就会不断重复,这不可能是正确的。

为了清楚起见,我想更改模板,以便我们有

代码语言:javascript
复制
{{ form.password.errors }}
<label for="{{ form.password.id_for_label }}"></label> {{ form.password }}

相反,我们可以编写一些内容,即html、css和表单变量的内容。像这样的事情(这不对):

代码语言:javascript
复制
{{ 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,我缺少什么,这样这样的前端任务就不需要后端干预?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-28 11:47:00

在征询了几位同事的意见后,似乎最有可能的做法是

代码语言:javascript
复制
{{ 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来完成这项工作,并且对包中的未来更改保持健壮,而不是需要包用户进行大量修改。这就是我们现在所做的。

可以编写模板筛选器。对于我来说,这不在本周的活动范围之内,但如果你能写出这样的东西,那肯定是很棒的:

代码语言:javascript
复制
{{ form.password.errors }}
{{ form.password | attrs placeholder="password" }}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30443343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档