のは、私は次の形式を持っているとしましょう:www.<my-domain>.com/results?query=<some-query>
:フォームが送信されたときDjangoは:「クリーンURL」内にフォームデータを変換し
<form id="search-form" class="form-horizontal" method="GET" action="/results/" role="form">
<input type="text" class="form-control" id="query" name="query">
<button type="submit" form="search-form" class="btn btn-primary">
<span class="glyphicon glyphicon-search" aria-hidden="true"></span>
</button>
</form>
は現在、URLはそうのようなパラメータとしてクエリを、含まれています。しかし、SEOの目的のために、これを「きれいなURL」に変換したいと考えています。これは次のようになります:www.<my-domain>.com/results/<some-query>
。
私はurls.pyに対して以下の変更を加えました:
urlpatterns = [
...
url(r'^results/(?P<query>[a-zA-Z ]+)$', views.ResultsView.as_view(), name="results"),
...
]
だから私はこのように私のResultsViewでクエリ値をつかむことができる必要があります:
class ResultsView(TemplateView):
def dispatch(self, request, *args, **kwargs):
query = kwargs.get('query')
どのようにすることができます対応するURLパターンと一致するようにフォームを送信しますか?私は入力アクションIDを渡すようなフォームアクションを試してみましたが、action="/results/query/"
ですが、明らかにquery
はリテラル文字列であり、入力値で置き換えられません。
を追加することを忘れないでください。スタンダードdjangoの方法で – AndMar
@マルニええ、それは理にかなっています。私はJSで素晴らしいことではない。実際の例を掲載できる場合は、正しい答えとしてマークします。 – Sam
SEOの目的で仕事をしている場合でも、GETメソッドを使用する必要があります。清潔で簡単です –