【发布时间】:2012-04-23 09:22:09
【问题描述】:
我有一个ModelForm,其中一个字段(名为creator)是ForeignKey,所以对于{{ form.creator }},Django 会像这样呈现<select> 标签:
<select id="id_approver" name="approver">
<option selected="selected" value="">---------</option>
<option value="1">hobbes3</option>
<option value="2">tareqmd</option>
<option value="3">bob</option>
<option value="4">sam</option>
<option value="5">jane</option>
</select>
但我想添加一个onchange 事件属性,以便以后可以使用 AJAX 来做其他事情。我还想更改--------- 以说其他内容并显示批准者的全名,而不是他们的用户名。
那么是否可以获取可能的批准者列表并生成我自己的选择选项?有点像
<select id="id_approver" name="approver" onchange="some_ajax_function()">
<option select="selected" value="0">Choose a user</option>
{% for approver in form.approver.all %} <!-- This won't work -->
<option value="{{ approver.pk }}">{{ approver.get_full_name }}</option>
{% endfor %}
</select>
而且我还认为大多数审批者列表都太大(比如超过 50 个),然后我最终会想要审批者的某种可搜索的自动完成字段。那么我肯定需要编写自己的 HTML。
如果有人需要,我的ModelForm 如下所示:
class OrderCreateForm( ModelForm ) :
class Meta :
model = Order
fields = (
'creator',
'approver',
'work_type',
'comment',
)
【问题讨论】:
标签: python django django-forms django-templates django-models