2012-03-13 11 views
2

誰かが簡単なURLディスパッチャの例を持っていますか?私はDjangoのドキュメントを見てきましたが、すべてのビューでどのように動作しているかを示す完全な例はありません。Django URLディスパッチャの例 - ビューから別のURLにURLを渡す

特に、私はあるビューから別のビューに "url"を渡そうとしています。たとえば、私は休日のウェブサイトを作ろうとしています。「空いている休日」ビューの「ヨーロッパ」ボタンをクリックすると、www.example.com/selected/europeに行きます。ヨーロッパの休日はすべて表示されます 「オーストラリア」と呼ばれる利用可能な休日ビューのボタンがクリックされた場合は、同様のオーストラリアの休日が表示されるwww.example.com/selected/australiaに移動します。

はこれまでのところ、url.pyに私が持っている:views.pyで

(r'^selected/(?P<location>\w+)/$', 'app.views.selected'), 

は私が持っている:

def selected(request, location) 

私はどこそこから行くのか分かりません。 また、「利用可能な休日」ビューから「選択済み」ビューに移動する方法...

+0

この質問は非常に不明です。そこからどこへ行くの?あなたは正常にあなたのビューに位置パラメータを渡しました。他に何か要りますか? –

+0

私は主に、異なるビューで選択されたボタンが選択されたビューにどのように渡されるのか混乱しています。 – JohnnyCash

+0

こんにちはジョニー、あなたは時々他の人の質問に答えることによって多くを学びます。いつか試してみてください。あなたは今23-0です。 –

答えて

4

「利用可能な休日」テンプレートから、ロケーションページにリンクする必要があります。

まず、あなたのURLの定義に "名前" の引数を追加します。

(r'^selected/(?P<location>\w+)/$', 'app.views.selected', name='selected_holidays'), 

次に、 "利用できる休日" テンプレートのようなリンクに:もちろん

{% url selected_holidays 'Europe' %} 

、使用forループの場合の位置変数:

{% for location in locations %} 
    <a href="{% url selected_holidays location %}">{{ location }}</a> 
{% endfor %} 

場所がモデルの場合、get_absolute_urlメソッドを追加する必要がありますテンプレートで次に

from django.core import urlresolvers 

class Location(models.Model): 
    # ... [snip] 
    def get_absolute_url(self): 
     return urlresolvers.reverse('selected_holidays', args=(self.location_name,)) 

::モデルの例に - それはかなりだ

{% for location in locations %} 
    <a href="{{ location.get_absolute_url }}">{{ location }}</a> 
{% endfor %} 

その場合には、それが意味行う場合「location_detail」から「selected_holidays」からURLの名前を変更しますDjangoの標準です。

あなたは、前方互換性があるような将来のurlタグをロードしたい場合:

{% load url from future %} 

その後、引用符で名前のURL文字列を使用します。まあ、私はあなたを考える

{% url 'selected_holidays' 'Europe' %} 

をここにいくつかのスタートがある。あなたはまた、DjangoのURLのマニュアルを上書きして、どこに問題があるのか​​を知る必要があります:) https://docs.djangoproject.com/en/dev/topics/http/urls/

+0

総合的な説明をありがとう。私はあなたの答えがそれが受け取ったよりも多くの認識に値すると感じます。 – Escher

関連する問題