部分观点& Ajax(模态)Django - Bootstrap

时间:2015-04-23 09:15:02

标签: jquery ajax django twitter-bootstrap django-views

两个问题 - 对于那些建议,我会非常高兴。不要指望复制的确切代码 - 粘贴,但是如果有人能指出我在无限网络上某个地方的好文章/课程部分那将是完美的(如果你不学习那么复制粘贴是什么意思?)

1)我记得在我的Uni时代(需要在ASP.NET MVC中提交一些项目)有一些像部分视图......它们对于生成界面等很有用。

目前我的视图有2个部分(导航栏和主视图)。我的每一个观点都以此为例:

    template = loader.get_template('resultsetlist.html')
context = RequestContext(request, {
    'resultsets' : resultsets,
    'instance_list': instance_list,
    'latest_resultset': latest_resultset
})

return HttpResponse(template.render(context))

在此示例中,我的当前视图只需要resultsets对象... latest_resultset和instance_list对象需要生成导航栏。

模板的工作原理如下:

    <div class="row">
    <div class="col-md-11">
        {% include 'navbar.html' %}
    </div>
</div>
<div class="row">
    <div class="col-md-11">
        {% block content %}

        {% endblock %}
    </div>
</div>

我可以在其他视图中生成导航栏(将其命名为master)并为任何其他操作(将扩展master的部分操作)创建小视图吗?而不是在我的每个视图中复制相同的代码行只是为了生成此导航栏...

2)我m not hidding as I may have idea about first questions ... I在第二个中完成绿色(没有web开发者体验ajax,js等)。

我的一个观点使用for循环来查看结果列表。让我们说我的每个结果都有3个属性: - 名称 - 姓 - 说明

我正在生成包含结果的表格:

{% for resultset in resultsets %}
                        <td>{{ resultset.Name }}</td>
                        <td>{{ resultset.Instance.Surname }}</td>

正如你所看到我只使用了2个字段并且想要一个按钮向我显示弹出窗口中的最后一个字段?这是我目前的尝试:

<td>{%  if resultset.Description %}
                    <button type="button" class="btn btn-primary btn-xs" data-toggle="modal" data-target="#descriptionmodal">
                            View SQL
                    </button>

模态:

        <div class="modal fade" id="descriptionmodal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-id="{{ resultset.Description }}">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="myModalLabel">Modal title</h4>
      </div>
      <div class="modal-body">
        {{ resultset.Description }}
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
      </div>
    </div>
  </div>
</div>

我知道这没有机会工作。有人可以帮我展示如何将有关此记录的数据(所有这些都在for循环中,然后在表格中)传递给动态ajax弹出窗口,它将在单击按钮后打开吗?我在我的项目中使用Twitter Bootstrap

非常感谢

1 个答案:

答案 0 :(得分:0)

所以,既然你的问题有两个不相关的问题,我只关注第一个问题。在将来,最好将它们分成两个问题并单独询问(这将使其他用户更容易对您的信息进行分类)。

当我创建需要查询的动态菜单时,我通常会创建一个自定义模板标记。包含标记将允许您添加带有额外上下文的html片段,如下所示:

from django import template

register = template.Library()

from myApp import myModel

@register.inclusion_tag('myMenu.html')
def my_dynamic_menu(context):
    model_list = myModel.objects.all()

    return {
        'model_list' : model_list,
    }

现在您的model_list可用于您的菜单,而无需将其添加到每个视图中。您可能希望确保将其放在templatetags文件夹中。如果您将其保存在名为“menuLoader.py”的“templatetags”文件夹中的文件中,那么您可以在任何模板中访问它,如下所示:

{% load menuLoader %}
{% my_dynamic_menu %}

我建议您在Custon Template Tags上阅读Django的文档以获取更多信息。