将django中模型表单的媒体类处理为模板

时间:2009-12-29 16:59:03

标签: django

我的表格看起来像这样:

class MarketingActionForm(forms.ModelForm):

    contact = ManyToManyByLetter(Contact, field_name="first_name")
    #contact = AjaxManyToManyField(Contact, DICT_LOOKUP)

    class Meta:
        model = MarketingAction
        exclude = ('created_by',)

    class Media:
            js = (
                settings.ADMIN_MEDIA_PREFIX + "js/SelectBox.js",
                settings.ADMIN_MEDIA_PREFIX + "js/SelectFilter2.js",
                settings.MEDIA_URL + "js/jquery.js",
                settings.MEDIA_URL + "js/ajax_filtered_fields.js",
            )

我处理此表单以查看模板。现在我想知道为什么Media类没有在模板中自动处理,至少它没有显示在.html输出中。

因此,我想问一下我必须做什么,以便媒体定义显示在.html输出中。

我没有在django .docs中找到它。因此我认为它会自动处理。

2 个答案:

答案 0 :(得分:8)

您需要自己在模板中添加{{form.media}}。不会自动插入对表单媒体的引用。

这很难做到,因为模板设计师会输入包含<head>部分的整个html文档,如果要尝试自动执行,django必须猜测插入链接的位置(如果javascript媒体正确猜测,那将是特别难的 - 如果脚本之间存在依赖关系)

答案 1 :(得分:0)

我相信Media类在admin中使用,类是admin.ModelAdmin

的子类

http://docs.djangoproject.com/en/dev/ref/contrib/admin/#modeladmin-media-definitions