簡體   English   中英

Django ModelMultipleChoiceField小部件無法渲染

[英]Django ModelMultipleChoiceField Widget not Rendering

我正在嘗試使用內置的django管理窗口小部件ModelMultipleChoiceField在表單中呈現這樣的內容:

在此輸入圖像描述

我在這里已經按照其他人的建議,並審查了文檔 但是我得到了一個半完整的小部件; 只顯示一個框,並且不顯示所有相關按鈕:

在此輸入圖像描述

此外,頁面加載時,會出現以下錯誤:

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 票證上被引用。

供參考,下面是我的formHTML

形成:

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 SNIPPET:

<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小部件?

我試過這個黑客,但它不起作用。

提前謝謝了。

弄清楚:在表單加載之前加載所有form.media和相關的javascripts是至關重要的。

所以,而不是:

<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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM