Django JQuery自动匹配

2024-09-28 19:20:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将自动完成字段添加到表单中。但我不能上班。我几乎试过所有的教程。 请求已经发出了,我收到了200个回复。在“开发人员工具”窗格中,当我单击请求时,在“响应”选项卡上,我看到了整个HTML文件。难道不应该有json格式的东西吗。。?? 代码如下:

在模型.py在

class Signers(models.Model):
    uid = models.IntegerField(primary_key=True)
    firstName = models.CharField(max_length=255)
    lastName = models.CharField(max_length=255)

在视图.py在

^{pr2}$

在网址.py在

url(r'^get_signers/', views.get_signers, name='get_signers'),

在praxis.html(我的模板)

<script>

  $(function() {
    $("#id_signerIds").autocomplete({
      source: "get_signers/",
      minLength: 2,
    });
  });

</script>

<script>
$(document).ready(function() {

              $('#id_submissionTimestamp').hide();
              $('#id_issueDate').hide();
});
</script>

{% endblock page_head %}


{% block content %}

<form method="POST" class="post-form">{% csrf_token %}

<!--some other fields here... -->

<div class="ui-widget">
  <label for="id_signerIds">Signers: </label>
  <input id="id_signerIds">
</div>

<button type="submit" class="save btn btn-default">Save</button>

 </form>

{% endblock %}

Tags: pyformidgetmodelsscriptfunctionlength
1条回答
网友
1楼 · 发布于 2024-09-28 19:20:48

首先,当您使用Django时,我建议您按名称键入url,就像这样,如果您更改了某个视图的url,则不需要在注释中到处更改它,所以您可以source: "get_signers/",而不是{}。在

现在回到问题上来,我建议您将代码更改为:

signers = Signers.objects.filter(uid__icontains=q)[:20]
results = []
for signer in signers:
    signer_json = signer.name
    results.append(signer_json)

为了提供我的工作案例,我会给你我的代码:

视图.py

^{pr2}$

网址.py

url(r'^api/company-autocomplete/', company_autocomplete, name='company-autocomplete'),

添加_公司.html

...
<div class="form-group bmd-form-group">
  <label class="bmd-label-static" 
         for="company_autocomplete_input">Cerca azienda</label>
  <input id="company_autocomplete_input" class="form-control"
         placeholder="Nome azienda" style="width:500px">
</div>
... 
<button class="btn btn-raised btn-primary" type="submit"
        style="background-color:#1A88B9;">Aggiungi</button>
<script>
  $(function() {
    $("#company_autocomplete_input").autocomplete({
      source: "{% url 'company-autocomplete' %}",
      minLength: 1,
    });
  });
</script>
...

最重要的是: 确保在自动完成输入之前添加jQuery

<!  jQuery ! >
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"> </script>
<!  jQuery UI ! >
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>

相关问题 更多 >