gpt4 book ai didi

javascript - Django ModelMultipleChoiceField 小部件未渲染

转载 作者:行者123 更新时间:2023-11-28 04:45:27 25 4
gpt4 key购买 nike

我正在尝试使用内置的 django 管理小部件 ModelMultipleChoiceField 以表单形式呈现类似这样的内容:

enter image description here

我遵循了其他人的建议here ,并查看了documentation 。但我得到了一个半完整的小部件;仅显示一个框,并且所有关联按钮均未显示:

enter image description here

另外,页面加载时,出现以下错误:

Uncaught ReferenceError: addEvent is not defined at (index):1665

这是 index 中导致错误的行:

<script type="text/javascript">
addEvent(window, "load", function(e) {SelectFilter.init("id_employee_selection", "__unicode__", 0, "/static/admin/"); });
</script>

我在 django 库中的任何地方都找不到 addEvent.js,即使它在某些 django 上被引用 tickets .

作为引用,下面是我的表单HTML

表格:

from django import forms

class EventAttendeesForm(forms.Form):

from employees.models import Employee
from django.contrib.admin.widgets import FilteredSelectMultiple

employee_selection = forms.ModelMultipleChoiceField(
queryset=Employee.objects.all(),
widget=FilteredSelectMultiple("__unicode__", is_stacked=False, attrs={'rows':20})
)

def __init__(self, *args, **kwargs):
super(EventAttendeesForm, self).__init__(*args, **kwargs)
self.fields['employee_selection'].label = "Employees"

HTML 片段:

<link href="/static/admin/css/widgets.css" type="text/css" media="all" rel="stylesheet" />
<script type="text/javascript" src="/jsi18n/"></script>
<script type="text/javascript" src="/static/admin/js/jquery.init.js"></script>

<form method='POST' action='' enctype='multipart/form-data'>{% csrf_token %}
{{ form }}
<input type='submit' value='Add Item(s)' />
</form>

{{ media }}

如何正确呈现 ModelMultipleChoiceField 小部件?

我已经尝试过这个hack但它不起作用。

提前非常感谢。

最佳答案

弄清楚了:在表单加载之前加载所有 form.media 和关联的 JavaScript 至关重要。

所以,而不是:

<link href="/static/admin/css/widgets.css" type="text/css" media="all" rel="stylesheet" />
<script type="text/javascript" src="/jsi18n/"></script>
<script type="text/javascript" src="/static/admin/js/jquery.init.js"></script>

<form method='POST' action='' enctype='multipart/form-data'>{% csrf_token %}
{{ form }}
<input type='submit' value='Add Item(s)' />
</form>

{{ media }}

执行此操作(脚本 + form.media 放置在 form 之前:

<script type="text/javascript" src="/jsi18n/"></script> 
<script type="text/javascript" src="/static/admin/js/jquery.min.js"></script>
<script type="text/javascript" src="/static/admin/js/jquery.init.js"></script>

{{ media }}

<form method='POST' action='' enctype='multipart/form-data'>{% csrf_token %}
{{ form }}
<input type='submit' value='Add Item(s)' />
</form>

关于javascript - Django ModelMultipleChoiceField 小部件未渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43419030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com