0

私はDjango 1.5.1を使用しています

ビュー名を変数としてテンプレートに渡す必要があります。

これが私の見解の関連部分です

return render(request, 'testcases/execute.html', {
        'table': table ,
        'submit_view': 'testcase_execute' ,
        "project": project})

そして、ここに私のテンプレートの関連部分があります

<form method="POST" action="{% url submit_view project.slug %}">
                {% render_table table %}
                <input type="submit"/>
</form>

ご覧のとおり、ビュー名 ('testcase_execute') を変数 (submit_view) としてテンプレートに渡そうとしています。

しかし、この方法ではエラーが発生します

'url' には、空でない最初の引数が必要です。Django 1.5 で構文が変更されました。ドキュメントを参照してください。

この SO スレッド ( How to pass a variable to {% url %} tag in django? )に従って、何が間違っているのかわかりません。url タグで変数を使用する必要がある場合は、引用符を付けないでください。同じことを伝える他のSOスレッドも存在します。

別の SO スレッド ( Passing variable urlname to django template in url tag ) を見ましたが、この種のもの (url タグを持つ変数を使用) はサポートされていません。これには django-reversetags を使用する必要があります。

これに光を当ててください-これを行う公式(Djangoコア)の方法はありますか、それともdjango-reversetagsを使用する必要があります

4

2 に答える 2

2

Django 1.3 より前では、構文 like{% url myview %}は正しく解釈されませんでした […]

{% url myview %}[…] のようにタグを変更する必要があります{% url "myview" %}。使用していた場合は{% load url from future %}、Django 1.5 でその行を削除するだけです。

https://docs.djangoproject.com/en/1.5/releases/1.5/#overview

于 2014-04-30T22:03:41.937 に答える