繁体   English   中英

Django:“函数”对象没有属性“ ModelSelect2”

[英]Django : 'function' object has no attribute 'ModelSelect2'

我一直在努力使Ajax自动完成。 我安装了软件包autocomplete-light,并尝试导入select2,但失败了。 它显示这样的错误消息。

错误信息。

 'function' object has no attribute 'ModelSelect2'

settings.py

INSTALLED_APPS = [
'dal',
'dal_select2',
'dal_queryset_sequence',

template.html

<form action="{% url 'blog:ajax_article_autocomplete' %}" method="post">
<div class="ui-widget">
<label for="id_articles">search: </label>
<input id="id_articles" type="text" size="50" name="articles" class="ui-autocomplete-input" autocomplete="off">
</div>
</form>

views.py

from django.utils.encoding import force_bytes
from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode
from django.views.generic.edit import FormView
from pip import autocomplete

def ajax_article_autocomplete(request):
    if request.is_ajax():
        q = request.GET.get('term', '')
        articles = Article.objects.filter(title__icontains = q )[:10]
        results = []
        for article in articles:
            article_json = {}
            article_json['id'] = article.id
            article_json['label'] = article.title
            article_json['value'] = article.title
            results.append(article_json)
        data = json.dumps(results)
    else:
        data = 'fail'
    mimetype = 'application/json'
    return HttpResponse(data, mimetype)

urls.py

url(r'^ajax/article/autocomplete/$', views.ajax_article_autocomplete, name='ajax_article_autocomplete'),

表格

class SearchForm(forms.ModelForm):
    class Meta:
        model = User
        fields = ('__all__')
        widgets = {
            'title': autocomplete.ModelSelect2(url='ajax_tag_autocomplete')
        }
from pip import autocomplete

这与您要添加的功能有什么关系? Pip是为您安装python软件包的程序,这只是一个实用程序功能。

然后由于某种原因,您试图从此函数中获取ModelSelect2对象吗?

我认为您只是弄乱了导入,您想使用的是django_select2.forms.ModelSelect2Widget (假设您正在使用django-select2 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM