如何在相同或不同的视图中分别加载Django中的Div?

时间:2014-01-17 22:01:25

标签: javascript jquery html css django

我有一个三窗格视图,右窗格根据您在中心窗格中单击的内容加载数据。 现在我只有一个视图返回所有三个窗格的数据(None为右窗格,如果在中心窗格窗格中没有选择任何内容,就像首次加载页面时那样)

但现在的问题是,因为每次点击中心窗格上的内容时,页面都会重新加载。所以所有滚动条都返回到顶部位置。

有没有办法使用相同或不同的视图在同一页面上单独加载两个窗格(HTML div)?

TEMPLATE:

{% block content %}
{% load guardian_tags %}
{% get_obj_perms request.user for issuelist as "issuelist_perms" %}
<section>
    <div>
        <strong>Currently viewing: </strong><em>{{issuelist.name}}</em>
    </div>
</section>
<section><div id="basepanel" class="auto-style5">
    <div id="panel1" class="auto-style5">
        {% render_table issue_table "django_tables2/issue_table.html"%}
        {% if "change_issuelist" in issuelist_perms %}
            <form action="{% url 'srt.views.newissue' issuelist.id %}" method="get" class="add_issue">
                <button type="submit" class="btn btn-default">Add Issue</button>
            </form>
        {% endif %}
    </div>
    {% if issue.id %}
        <div id="panel2" class="auto-style5">
            {% if "change_issuelist" in issuelist_perms %}
                <form action="{% url 'srt.views.editissue' issuelist.id issue.id %}" method="get" class="add_issue">
                    <button type="submit" class="btn btn-default">Edit Issue</button>
                </form>
            {% endif %}
            <strong>Title:</strong> <em>{{issue.title}}<br><br></em>
            {% if "delete_issuelist" in issuelist_perms %}
                <form action="{% url 'srt.views.deleteissue' issuelist.id issue.id %}" method="post" class="add_issue" onsubmit="return confirm('Do you really want to delete Issue with title: {{issue.title}}?');">{% csrf_token %}
                    <button type="submit" class="btn btn-default">Delete Issue</button>
                </form>
            {% endif %}
            <strong>Summary: </strong><em>{{issue.summary}}<br><br></em>
            <strong>SSS Tracking Number:</strong><span style="padding-left:1.2em;">{{issue.sss_tracking}}</span><br><br>
            <strong>Cust. Tracking Number:</strong><span style="padding-left:0.2em">{{issue.customer_tracking}}</span><br>
            <strong><br>Suspected Component: </strong>{{issue.suspected_component}}<br><br>
            <strong>Status: </strong>{% inplace_edit "issue.status" %}<br><br>
            <strong>Completed Actions/Updates:<br></strong>
            {% render_table update_action_table "django_tables2/action_table.html"%}
            <br><strong>Next Steps/Action:</strong>
            {% if "change_issuelist" in issuelist_perms %}
                <form action="{% url 'srt.views.newaction' issuelist.id issue.id %}" method="get" class="add_new_action">
                    <button type="submit" class="btn btn-default">Add New Action</button>
                </form>
            {% endif %}
            {% render_table planned_action_table "django_tables2/action_table.html"%}
            <br><strong>Historic Actions/Updates:<br></strong>
            {% render_table historic_action_table "django_tables2/action_table.html"%}
        </div>

            {% if action.id %}
                <div id="panel3" class="auto-style4">

                    <form action="{% url 'srt.views.action_attachments' issuelist.id issue.id action.id %}" method="get" class="add_issue">
                        <button type="submit" class="btn btn-default">Attachments</button>
                    </form>

                    <strong>Action: </strong><em>{{ action.title }}</em><br><br>
                    <strong>Description: </strong><em>{{ action.description }}</em><br><br>
                    <strong>Current Action State: </strong>{% inplace_edit "action.state" %}<br>
                    <!-- <strong>Issue: </strong><em>{{issue.title}}</em><br><br> -->

                    {% if "delete_issuelist" in issuelist_perms %}
                        <br>
                        <form action="{% url 'srt.views.deleteaction' issuelist.id issue.id action.id %}" method="post" class="add_issue" onsubmit="return confirm('Do you really want to delete the Action with title: {{action.title}}?');">{% csrf_token %}
                            <button type="submit" class="btn btn-default">Delete Action</button>
                        </form>
                    {% endif %}
                    {% if "delete_issuelist" in issuelist_perms %}
                        <form action="{% url 'srt.views.editaction' issuelist.id issue.id action.id %}" method="get" class="add_new_action">
                            <button type="submit" class="btn btn-default">Edit Action</button>
                        </form>          
                        <br>
                    {% endif %}

                    <br>
                    {% render_table actionlog_table "django_tables2/action_table.html"%}
                    {% if "change_issuelist" in issuelist_perms %}
                        <form action="{% url 'srt.views.newactionlog' issuelist.id issue.id action.id %}" method="get" class="add_action_log">
                            <button type="submit" class="btn btn-default">Add Action Log</button>
                        </form>
                    {% endif %}
                </div>
            {% endif %}
        {% endif %}
</div></section>
{% endblock %}

查看该模板:

def view_issues(request, issuelist_id, issue_id=None, action_id=None):

issuelist = get_object_or_404(IssueList, id=issuelist_id)
issue_table = IssueTable(Issue.objects.filter(issuelist = issuelist).order_by("-added"), prefix="i")

if (issue_id is None) and (action_id is None):
    issue = []
    action = []
    completed_action_list = []
    planned_action_list = []
    historic_action_list = []
    actionlog_list = []

elif (issue_id is not None) and (action_id is None):
    issue = get_object_or_404(Issue, id=issue_id)
    action = []
    completed_action_list = Action.objects.filter(issue = issue).exclude(state = Action.STATUS.PLANNED).exclude (state = Action.STATUS.IN_PROGRESS).exclude(is_historic = True).order_by("-event_date")
    historic_action_list = Action.objects.filter(issue = issue).exclude(state = Action.STATUS.PLANNED).exclude (state = Action.STATUS.IN_PROGRESS).exclude(is_historic = False).order_by("-event_date")
    planned_action_list = Action.objects.filter(issue = issue).exclude(state = Action.STATUS.COMPLETED).exclude(state = Action.STATUS.ABANDONED).order_by("-event_date")
    actionlog_list = []

elif (issue_id is not None) and (action_id is not None):
    action = get_object_or_404(Action, id=action_id)
    issue = get_object_or_404(Issue, id=issue_id)
    completed_action_list = Action.objects.filter(issue = issue).exclude(state = Action.STATUS.PLANNED).exclude (state = Action.STATUS.IN_PROGRESS).exclude(is_historic = True).order_by("-event_date")
    historic_action_list = Action.objects.filter(issue = issue).exclude(state = Action.STATUS.PLANNED).exclude (state = Action.STATUS.IN_PROGRESS).exclude(is_historic = False).order_by("-event_date")
    planned_action_list = Action.objects.filter(issue = issue).exclude(state = Action.STATUS.COMPLETED).exclude(state = Action.STATUS.ABANDONED).order_by("-event_date")
    actionlog_list = ActionLog.objects.filter(action = action).order_by("-log_date")

else:
    return HttpResponseNotFound('<h1>Page not found</h1>')

update_action_table = CompletedActionTable(reversed(completed_action_list), prefix="u")
historic_action_table = CompletedActionTable(reversed(historic_action_list), prefix="h")
planned_action_table = PlannedActionTable(planned_action_list, prefix="p")    
if request.user.has_perm('srt.change_issuelist', issuelist):
    actionlog_table = ActionLogTable(actionlog_list, prefix="l")
else:
    actionlog_table = ActionLogTableUnEditable(actionlog_list, prefix="l")

RequestConfig(request, paginate={"per_page":20}).configure(issue_table)
RequestConfig(request, paginate=False).configure(update_action_table)
RequestConfig(request, paginate={"per_page":5}).configure(historic_action_table)
RequestConfig(request, paginate=False).configure(planned_action_table)
RequestConfig(request, paginate=False).configure(actionlog_table)    

return render(request, 'srt/view_issues.html', {
    'issuelist':issuelist , 
    'issue': issue, 
    'action': action, 
    'issue_table':issue_table, 
    'update_action_table': update_action_table, 
    'historic_action_table': historic_action_table, 
    'planned_action_table': planned_action_table, 
    'actionlog_table': actionlog_table
    })

0 个答案:

没有答案