2017-08-17 14 views
0

urlにオプションのurlパラメータが必要です。プライマリURLは次のとおりです。私は知らないよう、正しくそれをした場合Djangoはオプションのurlパラメータを処理します

url(r'^(?P<letnik_id>[1-4])/(?P<classes_id>[A-G])/(?P<subject_id>[\w\-]+)/(?P<digit>\d+)/$'', views.subject, name="subject_id_optional"), 

イムさえわからない:

url(r'^(?P<letnik_id>[1-4])/(?P<classes_id>[A-G])/(?P<subject_id>[\w\-]+)$', views.subject, name="subject_id"), 

しかし、被写体IDの後に私はいつも数あるオプションのパラメータを追加できるようにしたいですパラメータの数を設定する方法。だから、パラメータが渡された後、私は(テンプレート?)または多分(モデルのID番号である)番号を読んでCSSクラスを追加することを望むかもしれません.highlited-model {background-color: red;}そのモデルに。 どのように私はこれを達成するだろうと私はビューまたはテンプレートで、それがより理にかなってどこでそれを処理する必要がありますか?

答えて

1

私はあなたがちょうど2つの同じビューを指したURL、あなたのオプションのパラメータを持つ1、およびなしの1持つことができると思います。

urls = [ 
    url(r'^(?P<letnik_id>[1-4])/(?P<classes_id>[A-G])/(?P<subject_id>[\w\-]+)/(?P<digit>\d+)/$', views.subject, name="subject_id_optional"), 
    url(r'^(?P<letnik_id>[1-4])/(?P<classes_id>[A-G])/(?P<subject_id>[\w\-]+)$', views.subject, name="subject_id"), 

] 

def subject(request, optional_parameter=''): 

    return render(
     request, 
     "template.html", 
     { 
      "optional_parameter": optional_parameter 
     } 
    ) 

を使用すると、他の変数と同じように、あなたはあなたのテンプレートにパラメータを取得することができますコンテキストに渡されます。

+0

ありがとうございます!あなたはなぜこの線が必要なのか私に説明することができますか? "optional_parameter = ''" – BaltimoreGG

関連する問題