django视图可以显示在灯箱中吗?

时间:2013-08-25 07:46:06

标签: javascript jquery django jquery-ui lightbox

如何在灯箱中显示 django 视图,其余网站仍在后台。

实际上我想要一个带有FormView“pop up”的模态 jQuery 对话框,并保留我的网站的其余部分,它使用画布作为整页背景。我看过jQuery演示,它显示了modal form,但我不明白如何在对话框中渲染视图

1 个答案:

答案 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。