如何在Django UserCreation表单中自定义HTML?

时间:2013-05-26 08:50:21

标签: django django-forms

在我看来,我有类似的东西:

form = UserCreationForm()
return render(request, "mypage.html", {'form': form})

在我看来,我有点神奇:

{{ form.as_p }}

生成表单的HTML。如何自定义此HTML?

2 个答案:

答案 0 :(得分:1)

如果我理解你的问题,那实际上很简单。从django文档中获取的格式如下:

<form action="/contact/" method="post">
{{ form.non_field_errors }}
<div class="fieldWrapper">
    {{ form.subject.errors }}
    <label for="id_subject">Email subject:</label>
    {{ form.subject }}
</div>
<div class="fieldWrapper">
    {{ form.message.errors }}
    <label for="id_message">Your message:</label>
    {{ form.message }}
</div>
<div class="fieldWrapper">
    {{ form.sender.errors }}
    <label for="id_sender">Your email address:</label>
    {{ form.sender }}
</div>
<div class="fieldWrapper">
    {{ form.cc_myself.errors }}
    <label for="id_cc_myself">CC yourself?</label>
    {{ form.cc_myself }}
</div>

完整说明可在此处找到: https://docs.djangoproject.com/en/dev/topics/forms/ 只需向下滚动到“自定义表单模板”部分

答案 1 :(得分:0)

form.as_p使用内部Django逻辑呈现表单(基本上是段落标记中包含的大字段)

您无法自定义(除非您覆盖Form子类上的as_p方法)。

您可以做的只是创建自己的HTML并手动呈现其中的表单字段。

所以,在mypage.html你可以做到:

<form>
{{ form.username }}
{{ form.password }}
</form>

每个字段都有许多方法,只需阅读文档:https://docs.djangoproject.com/en/dev/ref/forms/api/