typeahead
に問題がありますが、入力中に候補のドロップダウンボックスが表示されますが、テキストは表示されません。私がそれがちょうど無作為なドロップダウンであったかどうか見るために私が知っている単語は、私のjson
ファイルとそうでない単語に入っています。私のデータベースにない単語を入力すると、ドロップダウンボックスが削除されるので、実際にはjson
ファイルの実際のテキストなしで動作しています。また、検索ボックスに入力する際に、私はPythonコンソール内でクエリが作成されていることを確認します。Twitterの先読みテキストが表示されない空白のドロップダウン
json
に「Number theory」と入力すると、ドロップダウンがテキストなしで表示されます。
私は私のjson
フォーマットがhttp://jsonlint.com/を使用して、正しいことを確認しました。テキストがドロップダウンボックスに表示されないのはなぜですか?
これが私の見解です:
def search_subclasss(request):
q = request.GET.get('subclass', '')
sub_classs = SubClasss.objects.filter(subclasss__icontains=q)
results = []
for subclasss in sub_classs:
results.append([subclasss.subclasss, subclasss.subject_id])
data = json.dumps(results)
return HttpResponse(data, content_type='application/json')
は、これは私のhtmlです:フォームウィジェットで
<div class="form-group">
<div id="remote">
{% render_field form_post.subclass %}
</div>
</div>
:
widget = {'subclass': forms.TextInput(attrs={'class': 'form-control typeahead', 'placeholder': 'class/subclass'}),
<script type="text/javascript">
var bestPictures = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('subclasss'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: "{% url 'search_subclasss' %}?subclass=%QUERY",
//url: '/search_subclasss/?subclass=%QUERY',
wildcard: '%QUERY'
}
});
$('#remote .typeahead').typeahead(null, {
name: 'subclasss',
display: 'subclasss',
limit: 10,
source: bestPictures
});
</script>
私のフォームは、次のようにレンダリングされます