【问题标题】:What's the simplest way to add additional HTML in Django forms and override form layout?在 Django 表单中添加额外的 HTML 并覆盖表单布局的最简单方法是什么?
【发布时间】:2017-07-14 04:36:34
【问题描述】:

我使用 Django 的表单工具设置了一个表单,它在模板中呈现如下:

{% block content %}
    <h1>Register to join Forge Design</h1>
    <form method="post" action="">
       {% csrf_token %}
       {{ form.as_p }}
       <input type="submit" value="{% trans 'Submit' %}" />
    </form>
{% endblock %}

我有名字、姓氏、电子邮件和可用日期字段,它们将垂直呈现我的字段,其标签左对齐。我想要控制每个字段,以便我将拥有如下屏幕截图所示的布局:

Desired form layout

谁能最好地建议如何自定义,以便我可以在“姓名”和“电子邮件地址 *”等字段之间散布标签,并更改名字和姓氏标签的位置,使它们位于各自字段下方.这是我必须通过将模板 {{form.as_p}} 替换为单独的 {{form fields}} 然后将其包装在 div 中以由 CSS 控制来做的事情吗?

谢谢

【问题讨论】:

    标签: django-templates


    【解决方案1】:

    您可以通过在表单中​​定义的名称访问每个字段

    {{ form.first_name.errors }} # Error of your field first name
    {{ form.first_name.label_tag }} # Label of your field first name, generate a label tag
    {{ form.first_name }} # Input for your field first name
    

    https://docs.djangoproject.com/en/1.10/topics/forms/#rendering-fields-manually

    【讨论】:

    • 谢谢@Wilfried 我想我会采用这种方法
    • 如果对您有帮助,请不要忘记接受答案。很高兴为您提供帮助。
    猜你喜欢
    • 2012-02-02
    • 2011-01-15
    • 1970-01-01
    • 2014-06-08
    • 2016-01-29
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    • 2020-08-19
    相关资源
    最近更新 更多