Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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
Python jQuery自动完成不';我不想发送特定的POST数据_Python_Django_Jquery Autocomplete - Fatal编程技术网

Python jQuery自动完成不';我不想发送特定的POST数据

Python jQuery自动完成不';我不想发送特定的POST数据,python,django,jquery-autocomplete,Python,Django,Jquery Autocomplete,我正在尝试添加项目(基金)。自动完成成功显示所有资金。它应该检索与该“基金”对应的fund.id。如果我能在这件事上再多看一眼,我将不胜感激 我只是想说清楚:我没有得到一个具体的错误。如果帖子中没有“基金”,我的观点就会改变方向。我只是想弄明白为什么我的自动完成功能没有发布基金后价值(fund.id) --提前谢谢 模板: <script type="text/javascript" src="{{ STATIC_URL }}js/autocomplete/add_fund_autocom

我正在尝试添加项目(基金)。自动完成成功显示所有资金。它应该检索与该“基金”对应的
fund.id
。如果我能在这件事上再多看一眼,我将不胜感激

我只是想说清楚:我没有得到一个具体的错误。如果帖子中没有“基金”,我的观点就会改变方向。我只是想弄明白为什么我的自动完成功能没有发布基金后价值(fund.id)

--提前谢谢

模板

<script type="text/javascript" src="{{ STATIC_URL }}js/autocomplete/add_fund_autocomplete.js"></script>
...
<form method="POST" action="/profile/edit/">
 {% csrf_token %}
      <input type="hidden" name="fund" id="id_fund" />
      <div class="inline-block">
           <label for="id_omnibox">Fund</label>
           <input id="id_omnibox" name="omnibox" placeholder="Enter a fund name or search for an existing..." type="text" />
      </div>
      <div class="input-prepend inline-block">
           <label for="id_amount">Allocation</label>
           <span>$</span>
           <input id="id_amount" name="amount" type="text" placeholder="Enter amount" />
      </div>
      <button class="add" type="submit" name="add_position">Add</button>
 </form>
(自动完成)视图

$(document).ready(function() {
    $.get('/autocomplete/funds/', function(data) {
        var completions = new Array();
        var dict = JSON.parse(data, function(key, value) {
            completions.push(key);
            return value;
        });
        $('#id_omnibox').autocomplete({
            source: completions,
            minLength: 2,
            select: function(event, ui) {
                $('#id_fund').val(dict[ui.item.value]);
            }
        });
    });
});
@login_required
def funds(request):
    funds = Fund.objects.exclude(name='Placeholder')
    result = {}
    for fund in funds:
        result[fund.name] = str(fund.id)
    return HttpResponse(json.dumps(result))
例如: 添加金额为$
123
的基金
Hoth Ltd
。 霍斯有限公司的
fund.id
应为
1

发布数据

POST
---------------------------------------------------------
Variable               Value
---------------------------------------------------------
fund                   u'' #empty? :\
csrfmiddlewaretoken    u'436f77eb2023043be2f5242bb0443d80'
omnibox                u'Hoth Ltd'
amount                 u'123'
add_position           u'' #Just a trigger used in my view

调用select回调函数时,变量
dict
未定义


你可以只使用
ui.item.value

ui.item.value
不是诀窍。我有一个精确的自动完成,在其他地方可以完美地工作。出于某种原因,这是唯一给我带来麻烦的自动完成。也许你给我指明了正确的方向。谢谢你的意见。