Django模板标签没有显示

时间:2018-03-24 16:19:50

标签: jquery django django-templates

我对如何显示Django模板标记感到困惑。

我正在使用Django 2.0.3和jQuery 3.3.1

我在名为home.html的模板上有这个:

//home.html
<script>
$(".game-menu").click(function () {
    $(".game-menu").removeClass("active");
    $(this).addClass("active")
});
$("#buildings").click(function () {
    $("#main-content").load("{% url 'game:buildings' %}");
    });
$("#overview").click(function () {
    $("#main-content").load("{% url 'game:overview' %}");
    });
</script>

<nav class="sidebar">
    <ul class="nav nav-pills flex-column">
        <li class="btn game-menu active" id="overview">
            <a class="nav-link text-white">Übersicht</a>
        </li>
        <li class="btn game-menu" id="buildings">
            <a class="nav-link text-white">Gebäude</a>
        </li>
    </ul>
</nav>

<!-- Page Content Holder -->
<main class="text-white" id="main-content">
    {% include 'game/overview.html' %}
</main>

包括overview.html可以正常工作(页面上显示的模板标记{{ planet.name }}

//overview.html
{% load static %}

<div class="card">
    <h2 class="card-header bg-dark">Übersicht - {{ planet.name }}</h2>
    <div class="card-body">
        <h5 class="card-title">Special title treatment</h5>
        <p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
        <a href="#" class="btn btn-primary">Go somewhere</a>
    </div>
</div>

我的

  

views.py:

from django.template import loader
from django.http import HttpResponse

def overview_view(request):
template = loader.get_template('game/overview.html')
context = {}
return HttpResponse(template.render(context, request))

现在让我困惑的部分

如果我点击导航按钮overview以通过jQuery将overview.html加载到<main id=main-content></main>,则会显示模板,但不会显示模板标记{{ planet.name }}

1 个答案:

答案 0 :(得分:1)

您需要在上下文中包含planet,例如:

def overview_view(request):
    template = loader.get_template('game/overview.html')
    context = {'planet': Planet.objects.get(name='Jupiter')}
    return HttpResponse(template.render(context, request))

请注意,您可以使用render快捷方式来简化视图。

from django.shortcuts import render

def overview_view(request):
    context = {'planet': Planet.objects.get(name='Jupiter')}
    return render(request, 'game/overview.html', context)