私は、ドロップダウンメニューでユーザーがいくつかの製品を選択し、そのページに基づいて同じページにグラフを表示させたいと考えています。ユーザーは、ドロップダウンメニューからオプションを再度選択/選択解除してからリフレッシュすることができます。そのため、同じページに留まりたいと思います。 My requirement同じhtmlページをdjangoの出力に残してください
私はコードを書いていますが、djangoの別のビューのために、別のURLを持っている必要があります。指定されたURLに移動しているため、ドロップダウンメニューは機能しません。
私は上記を得るためにコンテキストと同じ表示ページをレンダリングしましたが、私のURLは異なります。
私はそれを働かせて、同じURLにとどまることができます。可能であれば、同じページを出力データでリロードしてください。以下は私のコードです。
のindex.html:事前に
<div class="container">
<div class="row">
<div class="col-md-6">
<h3>Select products:</h3>
<form id="selectProduct" role="search" method="get" action="{% url 'selectedproducts' %}">
<select name="parameters[]" data-placeholder="Choose products" class="chosen-select" multiple tabindex="4">
{% for p in productnames %}
<option value="{{ p.productname }}"> {{ p.productname }} </option>
{% endfor %}
</select><br/>
<label for="submit"></label><button id="submit" type="submit" class="btn btn-default">Submit</button>
</form>
</div>
</div>
<div class="row"></div><br />
<h3> Distribution of sales in the products:</h3>
</div>
</div>
<p>{{ productList }}</p>
urls.py
url(r'^products/', views.productList, name='index'),
url(r'^selectedproducts/', views.selectedproducts, name='selectedproducts')
view.py
def productList(request):
productnames = Products.objects.all()
context = {
'productnames': productnames,
}
return render(request, 'sales/index.html', context)
def selectedproducts(request):
p = request.GET.getlist('parameters[]')
context = {
'productList': p,
}
# --- logic later for chart ------
return render(request, 'sales/index.html', context)
感謝。 < form id="selectProduct" role="search" method="get" action="{% url 'index' %}">
に<form id="selectProduct" role="search" method="get" action="{% url 'selectedproducts' %}">
変更で
に
あなたの問題を解決した場合、私に教えてください。ラベルをクリックしてチャートを操作することができます。ホイールを再構築する必要はありません。その他のオプションは次のとおりです:http://www.chartjs.org/samples/latest/ あなたが現在行っているようにしたいのであれば、Ajax/API呼び出しを検索する必要があります。 Ajaxを呼び出すと、他のサイトからリロードせずに情報を取得できます。 – hansTheFranz参照のおかげで、チャートのみを使用するように計画しています:)現在、私は選択バーと同じページにチャートを表示することに集中していました。 – starFire