0

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

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

在我看来,我有一些魔力:

{{ form.as_p }}

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

4

2 回答 2

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/ 只需向下滚动到“自定义表单模板”部分

于 2013-05-26T08:56:16.827 回答
0

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

您不能自定义它(除非您覆盖as_pForm 子类上的方法)。

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

所以,在你的mypage.html你可以这样做:

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

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

于 2013-05-26T08:54:27.087 回答