用户应在选择某些组后选择主机.我已经使用JQuery链接远程插件构建了一个链式选择,用于通过组选择主机.以下代码正在使用并正常工作:
$('#hosts').remoteChained({
parents: "#hosts_group",
url: "ajax/getHosts"
});
Run Code Online (Sandbox Code Playgroud)
<select id="hosts_group" name="hosts_group" class="form-control">
<option value="">Bitte Gruppe selektieren</option>
<option value="1>Some Groups</option>
</select>
<select id="hosts" name="hosts"></select>
Run Code Online (Sandbox Code Playgroud)
但最终结果应该为主机提供duallistbox,用户可以从任何组中选择主机.我尝试将多个标记添加到主机选择并通过以下代码段添加JQuery DuallistBox:
$('#hosts').remoteChained({
parents: "#hosts_group",
url: "ajax/getHosts"
}).DualListBox({json: false});
Run Code Online (Sandbox Code Playgroud)
duallist框显示正常,但在选择组时没有显示主机.
JSON数据如下所示:
[
{'name': 'host1', 'id': '1'},
{'name': 'host2', 'id': '2'}
]
Run Code Online (Sandbox Code Playgroud)
选择其他组时,json还包含不同的主机.链式选择插件通过以下请求请求数据:ajax/getHosts /?hosts_group = selectedId
只需使用带有正常多重选择的链式选择就可以正常工作.问题是在duallist框中显示json数据,每个选择都有所不同.
我试图构建一个JsFiddle示例,但它不起作用,因为外部库将不会被加载,我真的不明白我如何通过不同的选择手动提供json.
我有一个基于类的视图,它只显示配置列表。
使用以下代码将此视图添加到 Django 管理站点:
@admin.register(ZbxHostConf)
class ZbxHostConfListViewAdmin(admin.ModelAdmin):
review_template = 'admin/admzbxhostconf_list.html'
def get_urls(self):
urls = super(ZbxHostConfListViewAdmin, self).get_urls()
my_urls = patterns('',
(r'^zbxhostconflist/$', self.admin_site.admin_view(self.review)),
)
return my_urls + urls
def review(self, request):
return ZbxHostConfListView.as_view()(request)
Run Code Online (Sandbox Code Playgroud)
模板扩展了admin/base_site.html模板。我只有在登录到 Django 管理站点后才能访问该站点。不幸的是,模板无法访问管理视图提供的上下文数据。
正如 Django 文档所建议的,上下文数据将直接提供给TemplateResponse函数:
def my_view(self, request):
# ...
context = dict(
# Include common variables for rendering the admin template.
self.admin_site.each_context(request),
# Anything else you want in the context...
key=value,
)
return TemplateResponse(request, "sometemplate.html", context)
Run Code Online (Sandbox Code Playgroud)
对于基于函数的视图,可以使用 extra_context 参数,但基于类的视图不提供此参数。我想我必须修改 get_context_data 函数,但我真的不明白如何向基于类的视图的 get_context_data 函数提供管理上下文数据。有什么建议?
我使用基于类的视图创建了一些表单,现在我想将它们添加到Django Admin站点.我刚刚找到此链接,其中描述了向管理站点添加普通视图.