【问题标题】:Partial Views & Ajax (modal) Django - Bootstrap部分视图和 Ajax(模态)Django - Bootstrap
【发布时间】:2015-07-01 08:53:38
【问题描述】:

两个问题 - 我很乐意就此提供一些建议。不期望复制粘贴确切的代码,但是如果有人可以将我指向无限网络上某处的好文章/课程部分,那将是完美的(如果您不学习,复制粘贴有什么意义?)

1) 我记得在我的大学时代(需要在 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))

在这个例子中,我当前的视图只需要结果集对象...生成导航栏需要 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) Im not hidding as I may have idea about first questions ... Im 在第二个中完全绿色(没有 webdeveloper 经验 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

非常感谢

【问题讨论】:

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


    【解决方案1】:

    所以,既然你的问题有两个不相关的问题,我只关注第一个问题。以后最好把它们分成两个问题分开问(这样其他用户更容易整理你的信息)。

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

    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 文件夹中。如果您将其保存在“templatetags”文件夹中名为“menuLoader.py”的文件中,那么您可以在任何模板中访问它,如下所示:

    {% load menuLoader %}
    {% my_dynamic_menu %}
    

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

    【讨论】:

      猜你喜欢
      • 2016-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-05
      • 1970-01-01
      • 2019-03-14
      • 1970-01-01
      相关资源
      最近更新 更多