【问题标题】:Django autocomplete light POSTs 4 times when creating new choices in the autocomplete form在自动完成表单中创建新选项时,Django 自动完成灯 POST 4 次
【发布时间】:2016-08-23 04:12:01
【问题描述】:

我已经创建了这个模型:

class TitleDescriptionLazyModel(models.Model):

class Meta:
    abstract = True

title = models.CharField(max_length=255)
description = models.TextField(blank=True)

def __str__(self):
    return self.title

class Jobsite(TitleDescriptionLazyModel):
    pass

如文档 (views.py) 中所述,在此自动完成视图中使用哪个:

class JobsiteAutocomplete(LoginRequiredMixin, autocomplete.Select2QuerySetView):

def get_queryset(self):
    if not self.request.user.is_authenticated():
        return Jobsite.objects.none()

    qs = Jobsite.objects.all()

    if self.q:
        qs = qs.filter(title__istartswith=self.q)

    return qs

我的 urls.py 将标题字段设置为“create_field”:

urlpatterns = [
    JobsiteAutocomplete.as_view(create_field='title'), name='jobsite_autocomplete'),
]

但是当我运行它时,我得到传递 get 请求的自动完成视图,直到我单击创建按钮,此时它发布 4 次,在我期望它创建 1 时在数据库中创建 4 个新项目:

> [22/Aug/2016 20:44:04] "GET /worklogs/jobsite-autocomplete/ HTTP/1.1" 200 356
[22/Aug/2016 20:44:10] "GET /worklogs/jobsite-autocomplete/?q=som HTTP/1.1" 200 252
[22/Aug/2016 20:44:11] "GET /worklogs/jobsite-autocomplete/?q=some HTTP/1.1" 200 254
[22/Aug/2016 20:44:12] "GET /worklogs/jobsite-autocomplete/?q=somewhere HTTP/1.1" 200 116
[22/Aug/2016 20:44:13] "POST /worklogs/jobsite-autocomplete/ HTTP/1.1" 200 31
[22/Aug/2016 20:44:13] "POST /worklogs/jobsite-autocomplete/ HTTP/1.1" 200 31
[22/Aug/2016 20:44:13] "POST /worklogs/jobsite-autocomplete/ HTTP/1.1" 200 31
[22/Aug/2016 20:44:13] "POST /worklogs/jobsite-autocomplete/ HTTP/1.1" 200 31

django = 1.9 蟒蛇= 3.4 django-autocomplete-light (3.1.8)

【问题讨论】:

    标签: django python-3.x autocomplete django-autocomplete-light


    【解决方案1】:

    我使用的是 jQuery v1.11.3

    我升级到 jQuery 2.2.4,它按预期工作。

    【讨论】:

      【解决方案2】:

      这个问题也在issues中得到了解答。 https://github.com/yourlabs/django-autocomplete-light/issues/758#issuecomment-329814124

      当您的页面中有多个 select2.js 时会发生这种情况。

      在我的例子中,我使用的是清晰的表单,并且我在页面上也有 {{ form.media }} 我删除了变量 {{ form.media }} 效果很好

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-02-07
        • 2013-09-29
        • 1970-01-01
        • 2015-04-10
        • 1970-01-01
        • 2022-08-10
        • 1970-01-01
        • 2011-05-13
        相关资源
        最近更新 更多