gpt4 book ai didi

python - django-autocomplete-light error = 'list' 对象没有属性 'queryset'

转载 作者:行者123 更新时间:2023-11-28 21:07:56 25 4
gpt4 key购买 nike

我是 django 的新手,我需要你的帮助,我尝试了很多天来理解 django-autocomplete-light,在设置我的测试之后, http://192.168.0.108:8000/country-autocomplete/工作,数据显示如此处所述http://django-autocomplete-light.readthedocs.io/en/master/tutorial.html#overview

但是在执行下一步之后,出现错误:

AttributeError at /auto
'list' object has no attribute 'queryset'
Request Method: GET
Request URL: http://192.168.0.108:8000/auto
Django Version: 1.10.3
Exception Type: AttributeError
Exception Value:'list' object has no attribute 'queryset'
Exception Location: /home/alcall/ENV/lib/python3.4/site-packages/dal/widgets.py in filter_choices_to_render, line 161

在我的设置下面:

网址:

from dal import autocomplete
from django.conf.urls import url
from django.contrib import admin
from rates.view.index import *
from rates.view.index import UpdateView

urlpatterns = [
url(r'^admin/', admin.site.urls),
url(
r'^country-autocomplete/$',
CountryAutocomplete.as_view(),
name='country-autocomplete',
),
url(r'^auto$',
UpdateView.as_view(),
name='select',
),
]

模型.py

from __future__ import unicode_literals
from django.db import models

class Country(models.Model):
enabled = models.IntegerField()
code3l = models.CharField(unique=True, max_length=3)
code2l = models.CharField(unique=True, max_length=2)
name = models.CharField(unique=True, max_length=64)
name_official = models.CharField(max_length=128, blank=True, null=True)
prix = models.FloatField()
flag_32 = models.CharField(max_length=255, blank=True, null=True)
flag_128 = models.CharField(max_length=255, blank=True, null=True)
latitude = models.DecimalField(max_digits=10, decimal_places=8, blank=True,$
longitude = models.DecimalField(max_digits=11, decimal_places=8, blank=True$
zoom = models.IntegerField(blank=True, null=True)

class Meta:
managed = False
db_table = 'country'

def __str__(self):
return self.name

查看(也包括表格)

from dal import autocomplete
from django.shortcuts import render
from rates.models import Country
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.http import HttpResponse
from django import forms
from django.core.urlresolvers import reverse_lazy
from django.views import generic

class CountryAutocomplete(autocomplete.Select2QuerySetView):
def get_queryset(self):
# Don't forget to filter out results depending on the visitor !
# if not self.request.user.is_authenticated():
# return Country.objects.none()

qs = Country.objects.all()

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

return qs

class Form_country(forms.ModelForm):
class Meta:
model = Country
fields = ('name', 'code2l')
widgets = {
'name': autocomplete.ModelSelect2Multiple(
'country-autocomplete'
)
}

class UpdateView(generic.UpdateView):
model = Country
form_class = Form_country
template_name = 'fr/public/monformulaire.html'
success_url = reverse_lazy('select')


def get_object(self):
return Country.objects.first()

最佳答案

我遇到了同样的问题。这里的问题是小部件。试图修复它很长时间。对我有用的唯一方法是更改​​表单的小部件。

如果不是那么重要,您可以改用 autocomplete.ListSelect2,它对我有用。

那么试试这个:

class Form_country(forms.ModelForm):
class Meta:
model = Country
fields = ('name', 'code2l')
widgets = {
'name': autocomplete.ListSelect2(
'country-autocomplete'
)
}

实际上,您可以尝试任何其他自动完成小部件,看看它是否有效

关于python - django-autocomplete-light error = 'list' 对象没有属性 'queryset',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40822373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com