2

私はディレクトリサービスを実装していますが、ご存知のように、リストURLは多くの場所に表示されます。私は{% url %}タグを使用していることを知っていますが、グローバルリストのURL構造の変更などの場合には、まだ防弾ではありません。たとえば、次{% url id=listing.id %}のようにURLにスラグを追加する必要がありました。{% url id=listing.id slug=listing.slug %}

グローバル検索と置換はオプションですが、この問題に取り組むための標準的な方法があるかどうか興味があります。

現在、私のアプローチは、URLを持っているlistingurl.htmlだけで{% url id=listing.id slug=listing.slug %}、必要な場所にはURLを含めるだけlistingurl.htmlですが、カスタムフィルターを実装する方が効率的かどうかはわかりません。

4

2 に答える 2

2

これが機能するかどうかは100%確信が持てず、それが最もエレガントなソリューションである場合:

some_template.html

{% include 'listing.html' with url_thing %}

list.html

{% url url_thing id=object.id %}
于 2012-07-30T10:39:44.357 に答える
1

IMHOを処理する最良の方法はget_absolute_url、モデルにメソッドを追加することです。次に、テンプレート内のURLを逆にする代わりに、そのメソッドを呼び出すことができます。

@models.permalink
def get_absolute_url(self):
    return ('listing_view_name', {'id': self.id, 'slug': self.slug})

それで:

<a href="{{ listing.get_absolute_url }}">{{ listing }}</a>
于 2012-07-30T14:57:17.270 に答える