我有一個模型(我們稱之爲Animal
),它有一個ForeignKey
到Genus
模型。我想有一個Modelform
,允許用戶選擇一個動物實例。顯然,單個選擇列表中的動物太多,所以我希望用戶能夠按屬性過濾,然後通過動物進行搜索。Django與Select2遠程數據示例
Select2有an example of using Ajax request做點什麼哦,所以,類似我想要的東西。我將搜索屬/動物,而不是搜索usr/repo。用戶可能不知道他們想要的確切的屬或確切的動物,因此這兩個位都需要被搜索。這個UI很適合我的需求。
Django-select2允許我在Django中使用Select2,並且我認爲我應該可以使用widget。請注意,urls.py
包含一個url(r'^heavy_data/$', heavy_data, name='heavy_data'),
,所以我可以訪問視圖方法罰款。
在我ModelForm
的__init__(...)
,具有:
self.fields['animal'] = forms.ModelChoiceField(
widget=HeavySelect2Widget(data_view='heavy_data'),
queryset=Animal.objects.all())
而在views
:
def heavy_data(request):
filtered_animals = {}
if request.is_ajax():
import ipdb
ipdb.set_trace()
# What next?
return HttpResponse(json.dumps(filtered_animals))
我不能確定如何通過整個genus/animal
搜索字符串構成的形式向視圖。然而,我甚至可能不會走在正確的軌道上...我是嗎?有沒有更好的方式去做我想要的?