在这个(Customising the output of items using django-autocomplete-light v3)之后,我定制了选项列表。在
我的代码:
class WordAutocomplete(autocomplete.Select2QuerySetView):
...
def get_result_label(self, obj):
template = get_template("autocomplete_light/item.html")
context = Context({"item": obj})
return mark_safe(template.render(context))
表格:
^{pr2}$模板自动完成/项目.html公司名称:
<a href="url">{{ item }}</a>
如您所见,有链接,每个项目一个。在
在我保存之前,这些链接都是活动的:
links are active in the list and in the select box
After saving, the links are no longer there
如何维护选择框中的链接?在
答案是直截了当的。在
首先,看一下这篇关于select2本身的文章:Can I change how the placeholder looks?
好的,我们需要重新定义templateResult函数,或者至少找出它是如何工作的。在
现在转到dal文档:Overriding javascript code
看起来templateResult是在某个地方定义的自动完成.init.js. 是的,它在那边:django-autocomplete-light/src/dal_select2/static/autocomplete_light/select2.js:47
函数本身:django-autocomplete-light/src/dal_select2/static/autocomplete_light/select2.js:7
顺便说一下,您在代码中提到了
data-html
的内容。在你可以调试js代码,控制台.log()并发现此函数适用于所有结果。在自动完成工作时动态获取,也可以通过页面html静态接收。这很好,所以您实际上需要做的就是以与呈现自动完成项相同的方式呈现“选择”选项。此外,根据您的代码,您甚至不必重新定义get_result_label()函数。在
相关问题 更多 >
编程相关推荐