2

私は非常に新しいdjangoでWebアプリケーションを作成しています。私がやりたいことは、{% block some_content%} タグを含むモーダル ウィンドウ (基本的には絶対配置の div) をクリックして開くことです。このブロックには、ログインフォームまたは登録フォーム(またはその他)のいずれかが含まれている必要があります。これを ajax を使用してロードしたい (何も無駄にロードされないようにするため)。

ここに、テンプレートの一部を表示したい部分があります:

    <div id="modal" style="position: absolute; top: 60px; left: 100px; height: 400px; width:700px; background: #777; z-index: 20">

        <a href="#" onclick="Dajaxice.my_site.tester1(test_callback, {'user_id': '{{ user.id }}'})"><div class="button">Test</div></a>
        <br />

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

そしてここに私のajax.pyがあります

    @dajaxice_register
    def tester1(request, user_id):
        print "test " + user_id
        #contenxt = Context({'items': range(2)})
        print "1"
        return_str = render_block_to_string('my_site/testr.html', 'test_content')
        print "7"
        return HttpResponse(return_str)

スニペットhttp://djangosnippets.org/snippets/942/を使用しています

プリント「#」に続くと、これが最後まで機能すると信じるようになります

    return HttpResponse(return_str)

エラーメッセージでさえ、何も起こらないようです。

ブロックにロードしたいテンプレートを含めるのを忘れました:

    {% extends "my_site/header.html" %}
    {% load url from future %}

    {% block test_content %}
        <div style="background: red; height: 70%; width:90%">
            <span>HEJ!!!</span>
        </div>
    {% endblock test_content %}

より良いアプローチがある場合は、それについて知ってうれしいですが、覚えておいてください。私はdjangoを初めて使用するので、ゆっくり行ってください。

4

2 に答える 2

1

だから、ここに私の解決策があります:

Dajaxをインストールしました。機能しなかった理由は以下のとおりですが、機能する完全なソリューションを次に示します。

html:

<input type="button" name="testerbutton" value="Test" id="testerbutton" onclick="Dajaxice.my_site.tester1(Dajax.process);">
<br />
<div name="result" value="" id="result">

ajax.py:

@dajaxice_register
def tester1(request):
    dajax = Dajax()
    str = render_to_string('my_site/testr.html')
    dajax.assign('#result', 'innerHTML', str)
    return dajax.json()

testr.html:

<div style="background: red; height: 70%; width:90%">
    <span>HEJ!!!</span>
</div>

そして最も重要な部分 - 私は自分自身を責めることしかできないようです:jquery.dajax.core.jsヘッダーに正しくインポートしていることを確認してください。それ以外の場合Dajax.processは何もしません。

助けてくれた@pyronicに感謝します。

于 2012-07-30T12:55:00.753 に答える