1

いくつかのアイテムを特定の順序でリストするプロジェクトがあります。この順序は、パラメーターを介して渡される2つの変数によって決定されます。

<a class="btn btn-info" href={{ request.path }}?key={{ key }}&orientation={{ orientation }}><i class="icon-wrench icon-large"></i></a>

「キー」はアイテムの特徴であり、「向き」は昇順または降順です。Pythonコードは、テンプレートに返されるアイテムの順序を処理します。

時間の制約を渡す必要がある別のコントロールがあります。

<a href={{ request.path }}?time={{ time }}>{{ value }}</a>

ここで、時間は分数です。

ここでの問題は、ユーザーが並べ替えリンクをクリックしてから時間リンクをクリックすると、{{request.path}}には「適切なパス」のみが含まれ、追加された追加のパラメーターは含まれないことです。

最初のソートクリックは次のようなものになります

/list/items/?key=importance&orientation=asc

しかし、2回目のクリックは戻ります

/list/items/?time=30

代わりに帰りたかったところ

/list/items/?key=importance&orientation=asc&time=30

今、私は代わりにこれを使うことができました

<a href={{ request.get_full_path }}?time={{ time }}>{{ value }}</a>

しかし、時間リンクが複数回クリックされると、次のような結果になる可能性があります。

/list/items/?key=importance&orientation=asc&time=30&time=60&time=15

本当にこのタイプの元のパラメーターを上書きしたかったのに、同じタイプの複数のパラメーター。

この問題を解決するにはどうすればよいですか。クリックリンクによって渡されるタイプではないすべてのパラメータを保持したいと思います。

4

1 に答える 1

1

このスニペットhttp://djangosnippets.org/snippets/2105/を使用できます。例:

{% load add_get_parameter %}
<a href="{% add_get_paramater param1='const_value',param2=variable_in_context %}">
    Link with modified params
</a>
于 2012-08-25T22:20:12.437 に答える