0

さて、ついにそれが起こりました。私は、Google をいくら検索しても解決しない問題に出くわしました。(私は単に間違った方向を見ているだけかもしれませんが、その場合、正しい方向へのポインタは素晴らしいでしょう).

モデルの関数から名前付き URL (可変引数付き) へのリンクを返す方法を見つけようとしています。たとえば、モデルを持っているとします。

class Picture(models.Model):
    picture_id = models.AutoField(primary_key=True)
    ...
    def picture_details(self):
        return "{%url picture_details " + str(self.picture_id) + " %}"

テンプレートに Picture オブジェクト 'pic' へのリンクを作成したいと思います。

   ...
   <a href="{{pic.picture_details}}" > details </a>
   ...

これは、「picture_details」という名前の URL にリンクしています。ただし、テンプレート内の結果のリンクは「http://.....{%url picture_details x %}」(x は picture_id) です。

リンクが動的に構築されたイメージマップの一部であるため、使用するとうまくいくことは理解して<a href = {% url picture_details pic.picture_id %} />いますが、私の状況は少し異なります。だから、私は画像マップ文字列が欲しい:

    <area shape="some_shape" coords="some_coords" href="{{pic.picture_details}}"/>

'picture_details' という名前の URL へのリンクが作成され、引数が picture_id になります。

問題を明確に説明できたことを願っていますが、さらに情報が必要な場合はお知らせください。助けてくれてありがとう、

あいさつ、

マルク

4

1 に答える 1

3

reverseこの場合、関数を使用する必要があります。template タグReverseのビュー側の対応物です。{% url %}

from django.core.urlresolvers import reverse

class Picture(models.Model):
    picture_id = models.AutoField(primary_key=True)
    ...
    def picture_details(self):
        return reverse('picture_details', args = [self.picture_id])

ドキュメントから:

コードでテンプレートタグに似たものを使用する必要がある場合url、Django は次のメソッドを (django.core.urlresolversモジュールで)提供します。

于 2010-09-18T10:52:50.360 に答える