有什么想法可以在Django表单处理中将结束标记(/>)放在html的文本输入标记中吗?

时间:2018-12-19 14:11:11

标签: django

//这是Django代码中的表格

<form method="post" novalidate>
  {% csrf_token %}
  {{ form }}
  <button type="submit">Submit</button>
</form>

//现在表单呈现为

<input type="text" name="phone_email" required id="id_phone_email">
 <input type="text" name="full_name" required id="id_full_name">

///现在此html代码没有任何输入字段关闭标记(/>),因为没有关闭输入标记,我能够运行jsx代码。我不知道如何放置关闭标记( />)在Django中?

1 个答案:

答案 0 :(得分:2)

要覆盖表单如何呈现其输入字段的HTML,可以创建一个自定义表单窗口小部件。

from django.forms.widgets import Input

class JSXInput(Input):
    template_name = 'myapp/widgets/jsxinput.html'

并将此小部件添加到您的表单字段中:

class MyForm(Form):
    full_name = forms.CharField(widget=JSXInput)

然后,您可以退出django/forms/widgets/input.html模块中的django.forms.templates模板,并添加右括号。

<input type="{{ widget.type }}" .... />

这是针对Django 2的,但iirc与1.11非常相似。

但是,您应该问自己:JSX代码是否应该由Django呈现,或者应该是静态资产,然后与Django REST API进行通信。