Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Django与Select2远程数据示例_Jquery_Python_Ajax_Django_Jquery Select2 - Fatal编程技术网

Jquery Django与Select2远程数据示例

Jquery Django与Select2远程数据示例,jquery,python,ajax,django,jquery-select2,Jquery,Python,Ajax,Django,Jquery Select2,我有一个模型(我们称之为动物),它有一个外键到属模型。我想要一个Modelform,允许用户选择一个动物实例。很明显,单个选择列表中的动物太多了,所以我希望用户能够按属进行筛选,然后按动物进行搜索 必须做一些和我想要的很相似的事情。我不会搜索usr/repo,而是搜索一个属/动物。用户可能不知道确切的属或他们想要的确切动物,因此这两个比特都需要可搜索。这个UI很适合我的需要 允许我与Django一起使用,并且有一个我认为应该能够使用的。请注意,urls.py包含一个url(r'^heavy\u

我有一个模型(我们称之为
动物
),它有一个
外键
模型。我想要一个
Modelform
,允许用户选择一个动物实例。很明显,单个选择列表中的动物太多了,所以我希望用户能够按属进行筛选,然后按动物进行搜索

必须做一些和我想要的很相似的事情。我不会搜索usr/repo,而是搜索一个属/动物。用户可能不知道确切的属或他们想要的确切动物,因此这两个比特都需要可搜索。这个UI很适合我的需要

允许我与Django一起使用,并且有一个我认为应该能够使用的。请注意,
urls.py
包含一个
url(r'^heavy\u data/$',heavy\u data,name='heavy\u data'),
,因此我可以很好地访问view方法

在my
ModelForm
\uuuuu init\uuuuuu(…)
中,具有:

self.fields['animal'] = forms.ModelChoiceField(
    widget=HeavySelect2Widget(data_view='heavy_data'),
    queryset=Animal.objects.all())
视图中

def heavy_data(request):
    filtered_animals = {}
    if request.is_ajax():
        import ipdb
        ipdb.set_trace()
        # What next?
    return HttpResponse(json.dumps(filtered_animals))

我不确定如何将整个
属/动物
搜索字符串从表单传递到视图。然而,我甚至可能没有走上正确的轨道。。。是吗?有没有更好的方法来做我想做的事?

这其实很琐碎

首先定义一个新的小部件,如下所示:

class MyWidget(ModelSelect2Widget):
    search_fields = ['name__icontains', 'genus__name__icontains']
然后,在您的表单中,使用该小部件:

class AnimalModelForm(ModelForm):
    class Meta:
        model = Animal
        fields = ['animal', ]
        widgets = {'configurator': MyWidget, }
然后可以按属、动物或两者进行搜索。没有巧妙的格式,你只需键入搜索词

非常感谢你的帮助