1

私のアプリケーションでは、エントリに関するデータが詳細に表示されます。ハイパーリンクを介してエントリ間を移動できます。これまでのコード:

<a href="/parks/{{ park.id }} ">{{park.name}}</a>

これで十分対応できました。ID は urls.py と views.py に取り込まれます

私が今直面している問題は、「場所」エントリを処理することです。場所の例は、「ヨーロッパ、英国」、「米国、ニューヨーク」です。そんなこと知ってる:

<a href="/parks/{{ park.location }} ">{{park.location}}</a>

と:

url(r'^location/(?P<park_location>\d+)$', Location_Main),

スペースやコンマなどが原因で機能しません。

どうすればこれを解決できますか? また、親会社の場所を処理する「場所」ビューと「場所」URL を希望します ()

前もって感謝します

4

4 に答える 4

6

パスをパスpark.idしてから、ビューで公園オブジェクトを取得してから、その場所を取得してください。

URL:

url(r'^location/(?P<park_id>\d+)$', Location_Main, name="park_location"),

テンプレート:

<a href="{% url park_location park.id %}">{{park.location}}</a>

景色:

def Location_Main(request, park_id):
    park = get_object_or_404(Park, pk=park_id)
    location = park.location

GETまたは、場所をパラメーターとして送信します。

URL:

url(r'^location/$', Location_Main, name="park_location"),

テンプレート:

<a href="{% url park_location %}?location={{park.location}}">{{park.location}}</a>

景色:

def Location_Main(request):
    location = request.GET.get('location')
于 2013-02-06T12:42:22.953 に答える
1
 url(r'^location/(?P<park_location>[a-zA-Z0-9_.-]+)/$', Location_Main),
于 2013-02-06T11:55:08.893 に答える
0

URL で使用する前に、場所の名前から句読点や英語以外の文字を削除する必要があります。または、定義時にそれらを削除することもできますpark.location

于 2013-02-06T11:55:35.810 に答える
0

テンプレートフィルターを使用urlencodeして、文字を次のようにエスケープできます

<a href="/parks/{{ park.location|urlencode }} ">{{park.location}}</a>

この質問を参照して、URLパターンを次のように変更する必要がある場合があります

url(r'^location/(?P<park_location>[\w|\W]+)$', Location_Main)
于 2013-02-06T12:17:56.183 に答える