如何在灯箱中显示 django 视图,其余网站仍在后台。
实际上我想要一个带有FormView“pop up”的模态 jQuery 对话框,并保留我的网站的其余部分,它使用画布作为整页背景。我看过jQuery演示,它显示了modal form,但我不明白如何在对话框中渲染视图。
答案 0 :(得分:3)
如果从视图中渲染模板,则可以选择以下两个选项之一。
您可以让模板扩展您的主模板,该主模板具有画布全页背景,并将您想要的额外信息渲染到格式正确的div中以转换为模态。
第二个选项是将模态标记放在主模板中,并有一个ajax函数,它将从视图中加载数据并动态地将其放入模态中。
示例方法1。
的 HTML 强> 的
main_template.html
<html>
<head>.....</head>
<body>.....{% block modal_block %}</body>
<script>
$(function() {
$( "#myModal" ).dialog({
modal: true
});
});
</script>
</html>
modal_template.html
{% extends 'main_template.html' %}
{% block modal_block %}
<div id="myModal"></div>
{% endblock %}
在这个方法中,然后在视图中渲染modal_template.html,它将创建一个包含主要内容的html页面,但也包含额外的模态div。然后,您可以执行视图/模板中所需的任何模板格式设置。
示例方法2
<html>
<head>.....</head>
<body>.....</body>
<script>
$(document).ready(function(){
$.get('views_url',function(data){
var myModal = $(data);
$('body').append(myModal);
$( myModal ).dialog({
modal: true
});
});
});
</script>
</html>
在这种情况下,你应该只从视图中渲染模态的html。