Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.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自动完成灯光小部件更改表单字段名称_Jquery_Python_Html_Django_Django Autocomplete Light - Fatal编程技术网

Jquery Django自动完成灯光小部件更改表单字段名称

Jquery Django自动完成灯光小部件更改表单字段名称,jquery,python,html,django,django-autocomplete-light,Jquery,Python,Html,Django,Django Autocomplete Light,我已经成功地将合并的自动完成灯光设置到我的django项目中。我正在表单上使用它,它正在按预期工作。我在上一节课时学习了快速入门教程 但是,我正在使用的autocomplete_light.Choice小部件的表单字段的表单字段名称已更改。具体地说,在我所期望的输入表单标记名的末尾附加了一个“-autocomplete” 这是我的表格: 类搜索表单(forms.Form): #flight\u from=forms.CharField(最大长度=200,必需=False,小部件=forms.Te

我已经成功地将合并的自动完成灯光设置到我的django项目中。我正在表单上使用它,它正在按预期工作。我在上一节课时学习了快速入门教程

但是,我正在使用的autocomplete_light.Choice小部件的表单字段的表单字段名称已更改。具体地说,在我所期望的输入表单标记名的末尾附加了一个“-autocomplete”

这是我的表格:

类搜索表单(forms.Form):
#flight\u from=forms.CharField(最大长度=200,必需=False,小部件=forms.TextInput)
flight_from=forms.modelcoocefield(Airport.objects.all(),
widget=autocomplete\u light.ChoiceWidget('AirportAutocomplete'))
flight\u to=forms.CharField(最大长度=200,必需=False,小部件=forms.TextInput)
开始日期=forms.DateField(必需=False,输入格式=“%Y-%m-%d”)
结束日期=forms.DateField(必需=False,输入格式=“%Y-%m-%d”)
max_price=forms.FloatField(必需=False,小部件=forms.TextInput)
这是我的autocomplete\u light\u registry.py文件:

导入自动完成\u灯
从模型导入机场
类AirportAutocomplete(autocomplete\u light.AutocompleteModelBase):
搜索\u字段=['name\u city\u country\u code']
自动完成灯。登记(机场、机场自动完成)
这就是表单字段在呈现后的外观:

<label for="id_flight_from">Flight from:</label>
<span id="id_flight_from-wrapper" class="autocomplete-light-widget flight_from single" data-autocomplete-name="flight_from" data-autocomplete-placeholder="Other model name ?" data-autocomplete-choice-selector="[data-value]" data-autocomplete-url="/autocomplete/AirportAutocomplete/" data-name="flight_from" data-bootstrap="normal" data-max-values="1" data-widget-ready="1">
<span id="id_flight_from-deck" class="deck div"> </span>
<input id="id_flight_from_text" class=" autocomplete" type="text" value="" name="flight_from-autocomplete" autocomplete="off" placeholder="Other model name ?">
<select id="id_flight_from" class="value-select" multiple="multiple" name="flight_from" style="display:none"> </select>
<span class="remove div" style="display:none"> X </span>
<span class="choice-template div" style="display:none">
</span>
<div style="clear: both"></div>

widget_js_attributes={'name':'flight_from'}
但这并没有改变输入标记名属性。如果您知道如何设置此属性或覆盖小部件呈现功能,请告诉我

如您所见,输入标记名为“flight\u from-autocomplete”,我希望它只是“flight\u from”

这不起作用,因为:

  • 隐藏的
    具有来自
    的名称
    flight\u,它将模型pk作为值
  • 此处的
    仅用于自动完成,其值不是要发送到
    表单
    对象,因此其名称中有
    -autocomplete
    后缀

您是说您试图更改自动完成输入的
name
属性,但您并不是说为什么要这样做。因此,我无法为您做更多的事情。

我找到了一个更简单的解决方案。下面的一个很好的例子给出了我能做什么的基本轮廓: