获取模板块内容并从ajax调用

时间:2016-02-15 16:16:08

标签: ajax django

我正在使用django 1.9和python 3.我的英语也不是最好的,所以请原谅这个问题,如果它是错误的。

我正在努力使我的网站成为单页应用程序。我需要获取给定模板的{% block %}内容,然后将其作为HttpResponse发送,以便ajax可以将其拾取并将其注入页面。

我尝试过使用此问题的答案:Django - how to get the contents of a {% block %} tag from a template

但是在尝试在我的视图中获取块的内容时是这样的:

response_data[content] = get_block_source('profile/login.html', 'content')

        if request.is_ajax():
            return HttpResponse(
                json.dumps(response_data),
                content_type="application/json"
            )

我只是从django得到这个错误,无论我做什么:

  

未找到/ login /模板块内容时的ValueError

块的内容甚至没有进入ajax调用,是什么给出了?

编辑:

我将在此处加入“内容”块:

在我的模板中:

{% extends 'base.html' %}
{% block content %}
<div class="big-title text">Log in</div>
<div class="form-container">
    <form name="login-form" id="user" method="post" action="/login/" enctype="multipart/form-data" class="text">
        {% csrf_token %}
        <div class="title">Enter your credentials</div>
        <div class="form-row">
            <div class="form-flex">
                <div class="field-container">
                    <div class="field-input-container">
                        <div class="field-label accent">Username</div>
                        <div class="field-input">
                            <input class="field-input-element" type="text" name="username" />
                        </div>
                    </div>
                    <div class="field-help">Your username is always lowercase.</div>
                </div>
            </div>
            <div class="form-flex">
                <div class="field-container" style="height: 110px">
                    <div class="field-input-container">
                        <div class="field-label accent">Password</div>
                        <div class="field-input">
                            <input class="field-input-element" type="password" name="password" />
                        </div>
                    </div>
                    <div class="field-help"></div>
                </div>
            </div>
        </div>
        <div class="form-button-container">
    <div class="form-error"></div>
    <div class="form-message"></div>
    <input type="submit" name="submit" value="Accept" class="button form-button"/>
    </div>
    </form>
</div>
{% endblock %}

在我的基地(base.html)

<body>
    <div id="modal-container">
        <div id="modal-overlay">
            <div id="modal-items">
            </div>
        </div>
    </div>
    <div id="wrapper">
        <header>
            <div id="header-title" class="text accent">App name</div>
            <div id="header-nav">
                <nav>
                    {% if user.is_authenticated %}
                    <a href="/" class="text accent">Home</a>
                    <a href="/feed" class="text accent">Feed</a> {% if request.user.is_superuser %}
                    <a href="/admin" class="text accent">Admin</a> {% endif %}
                    <a href="" class="text">N</a>
                    <a href="/{{ request.user }}" class="header-avatar-small-a">
                        <div class="text header-greeting">Hi, {{ user.userprofile.display_name }}</div>
                        <div class="header-avatar-small">
                            {% if not user.userprofile.avatar == '' %}
                            <img src="{{ MEDIA_URL }}users/{{ user }}/avatar" alt=""> {% else %}
                            <img src="{{ MEDIA_URL }}users/avatar" alt=""> {% endif %}
                        </div>
                    </a>
                    {% else %}
                    <a href="/login" class="text accent">Log in</a>
                    <a href="/register" class="text accent">Create account</a> {% endif %}
                </nav>
            </div>
            <div class="progress">
                <div id="header-progress" class="fill"></div>
            </div>
        </header>
        <main>
            {% block content %} {% endblock %}
        </main>
        <footer></footer>
    </div>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

模板源是模板实际HTML,而不是文件引用