我目前正在开发一个模板标签,它可以很好地呈现表单。你知道吗
@register.inclusion_tag('myforms.html', takes_context=True)
def myform(context, form)
context['form'] = form
context['error_classes'] = 'has-error has-feedback'
return context
在myforms.html
中,我使用了一些JavaScript库和css文件。在模板中,我添加了脚本:
<link rel="stylesheet" href="{% static 'xyz.css' %}"/>
<script lang="javascript" src="{% static 'xyz.js' %}"></script>
<div>
...
</div>
在一个站点上呈现多个表单时,这些<links>
和<script>
在html文档中多次出现。你知道吗
一种可能是将它们包含在<head>
标记内的基本模板中。但是即使不需要它们,它们也会出现在html文件中。你知道吗
将{{ block head }}
添加到<head>
内的基模板也不起作用。为此,需要{{ block.super }}
来附加新的js和css文件,但是{{ block.super }}
在includes中不起作用(请参见https://stackoverflow.com/a/6566463/2014080)。你知道吗
我有点好奇你为什么用includes。尽管它们确实有一些用例,但您不应该经常使用它们。不管怎样。你知道吗
Django表单碰巧有一个特性,可以收集assets 基本上,您应该直接在表单上定义特定于表单的媒体,如下所示:
关键是它们是由Django收集的,您可以在视图或templatetag中,或者在您可以访问所有表单的任何地方对它们进行操作。假设您有
MyForm
和MyOtherForm
,您可以:在根模板中,您可以执行以下操作:
只要你在所有观点上都坚持这个惯例。你知道吗
django-sekizai应该可以。使用此应用程序提供的标记,您可以向文档动态添加脚本或媒体资源。一定要检查the docs。你知道吗
相关问题 更多 >
编程相关推荐