当我注册autocomplete_light.AutocompleteModelBase并在我的表单中使用它时,显示的结果总是限制为20.我在文档中找不到任何选项来增加在表单上显示的结果数.
autocomplete_light_regisrty.py
class IssueAutocomplete(autocomplete_light.AutocompleteModelBase):
model = Issue
search_fields = ('^issue_number',)
autocomplete_light.register(
IssueAutocomplete,
attrs={
'placeholder': 'Type an issue number...',
'data-autocomplete-minimum-characters': 1
},
)
Run Code Online (Sandbox Code Playgroud)
forms.py
class StoryForm(autocomplete_light.ModelForm):
class Meta:
model = Story
fields = ('slug', 'summary', 'author', 'editor', 'issue',)
Run Code Online (Sandbox Code Playgroud)
但是当我搜索我的表单时,即使我已经超过60,也只会出现最多20个结果.当我转到/ autocomplete/IssueAutocomplete时会复制这个结果.一次只能显示20个结果.
如何获得完整的结果列表?
我面临以下情况:我有一个 django 项目,它使用外部应用程序 [App1]。在 App1 中,它具有以下结构:
抽象类“基础”:
class Base(models.Model):
"""
Base model with boilerplate for all models.
"""
name = models.CharField(max_length=200, db_index=True)
alternate_names = models.TextField(null=True, blank=True,
default='')
..............
..............
class Meta:
abstract = True
def __str__(self):
display_name = getattr(self, 'display_name', None)
if display_name:
return display_name
return self.name
Run Code Online (Sandbox Code Playgroud)基于“Base”的抽象类,称为“AbstractClassA”:
class AbstractClassA(Base):
display_name = models.CharField(max_length=200)
....
....
class Meta(Base.Meta):
abstract = True
def get_display_name(self):
....
....
return ....
Run Code Online (Sandbox Code Playgroud)非抽象类类 ClassA(AbstractClassA)
现在,当我在视图中对此 ClassA 进行查询时,例如:
qs = ClassA.objects.filter(Q(name__icontains=query_term)....)
return qs
Run Code Online (Sandbox Code Playgroud)
我将这个 qs 输入另一个外部应用程序(自动完成),这样当我在我的网络表单上输入“xxxx”时,表单会根据这个 qs …
我正在将 Python Django 项目从一台服务器移动到另一台服务器。我使用的是 Debian 7,它在目标服务器上标准安装了 python 2.7.3(原始服务器也使用 Debian 7)。
我尝试移动的项目在其父文件夹中具有以下目录:-
-env
-src
Run Code Online (Sandbox Code Playgroud)
它还有一个文件
install.pip
Run Code Online (Sandbox Code Playgroud)
现在我已经配置了 uwsgi,这些应用程序正在新的网络服务器上运行,但我想使用项目源文件夹中的manage.py。当我运行以下命令时:
python manage.py changepassword user
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
File "manage.py", line 8, in <module>
from django.core.management import execute_from_command_line
ImportError: No module named django.core.management
Run Code Online (Sandbox Code Playgroud)
为了尝试解决这个问题,我安装了 virtualenv 和 pip 并构建了一个新的虚拟环境。然后我运行了以下命令:
pip install -r /sourcefolder/install.pip
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我收到一个错误
Failed building wheel for Pillow
Run Code Online (Sandbox Code Playgroud)
我在线研究了这一点,并确定一个可能的解决方案是安装 libjpg,我使用以下命令完成
apt-get install libjpeg8-dev
Run Code Online (Sandbox Code Playgroud)
然后我再次运行pip install -r /sourcefolder/install.pip
,这次它完成了,没有任何错误。
我尝试再次运行该命令:-
python manage.py changepassword user
Run Code Online (Sandbox Code Playgroud)
我仍然收到错误,但现在它已经改变了。
如果我在虚拟环境之外运行该命令,我会收到以下错误:
文件“manage.py”,第8行,来自django.core.management导入execute_from_command_line导入错误:没有名为django.core.management的模块
如果我从虚拟环境内部运行命令(我已使用 install.pip 要求在其中运行了 pip),我会收到此错误
为了便于阅读等,我已将长路径更改为 /sourcepath:-
Traceback (most recent …
Run Code Online (Sandbox Code Playgroud) 我是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
Run Code Online (Sandbox Code Playgroud)
在我的设置下面:
网址:
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',
),
]
Run Code Online (Sandbox Code Playgroud)
models.py
from __future__ …
Run Code Online (Sandbox Code Playgroud) 所以,这两天我一直在努力设置 django-autocomplete-light 来做最基本的自动完成,但无济于事。我遇到了太多的问题和太多的错误,我无法在此处指定它们以寻求明确的解决方案。
所以,我现在试图做的是创建一个基本的 django 应用程序,从头开始,并从 django-autocomplete-light 存储库中删除“基本”示例。这样做是为了尝试创建一个可重现的问题,以便我可以获得支持。
然而,这也令人沮丧。我现在遇到了这个错误......
File "/Users/josh/.virtualenvs/testaclite/lib/python2.7/site-packages/django/__init__.py", line 21, in setup
apps.populate(settings.INSTALLED_APPS)
File "/Users/josh/.virtualenvs/testaclite/lib/python2.7/site-packages/django/apps/registry.py", line 115, in populate
app_config.ready()
File "/Users/josh/.virtualenvs/testaclite/lib/python2.7/site-packages/autocomplete_light/apps.py", line 10, in ready
autocomplete_light.autodiscover()
File "/Users/josh/.virtualenvs/testaclite/lib/python2.7/site-packages/autocomplete_light/registry.py", line 290, in autodiscover
autodiscover_modules('autocomplete_light_registry')
File "/Users/josh/.virtualenvs/testaclite/lib/python2.7/site-packages/django/utils/module_loading.py", line 74, in autodiscover_modules
import_module('%s.%s' % (app_config.name, module_to_search))
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/Users/josh/Development/python/testaclite/aclite/basic/autocomplete_light_registry.py", line 1, in <module>
import autocomplete_light.shortcuts as autocomplete_light
ImportError: No module named shortcuts
Run Code Online (Sandbox Code Playgroud)
我能做些什么来解决这个问题?
有没有人成功地同时使用dal和django-filter?下面的尝试是我的,我尝试使用filterset_factory,提供模型类和字段列表,然后尝试使用futuremodelform。我有 ,
ModelForm没有指定模型类。
我认为这只是发生的许多错误之一。之前做过的任何人,我都必须使用filterset_factory,并根据参数创建动态类,我也想覆盖小部件,以便可以使用dal小部件。
#testing filterset
from dal import autocomplete
from django.db import models
class PanFilterSet(django_filters.FilterSet):
filter_overrides = {
models.ForeignKey: {
'filter_class': autocomplete.ModelSelect2,
},
}
def pan_filterset_factory(model,fields):
meta = type(str('Meta'), (object,), {'model': model,'fields':fields,'form':autocomplete.FutureModelForm})
filterset = type(str('%sFilterSet' % model._meta.object_name),
(PanFilterSet,), {'Meta': meta})
return filterset
searchFormFilterSet = pan_filterset_factory(self.model_class,self.final_search_fields)
f = searchFormFilterSet(self.request.GET, queryset=self.get_queryset())
print f.form.as_p()
Run Code Online (Sandbox Code Playgroud) 我一直在分别使用简单的 DAL 和 django-filter,但是我在将 DAL 与 django-filter 一起使用时遇到了问题。
我读过这个页面:django-filter with django autocomplete light
但我还是很困惑。我有下面这样的过滤器类,我想在“devname”字段上使用 DAL:
class DevListFil(django_filters.FilterSet):
devname = django_filters.CharFilter(name='devname',lookup_expr='icontains')
sn = django_filters.CharFilter(name='sn',lookup_expr='icontains')
devtype = django_filters.CharFilter(name='devtype',lookup_expr='icontains')
class Meta:
model = Device
fields = ['devname','sn','devtype']
Run Code Online (Sandbox Code Playgroud)
请提供任何帮助或指向正确的方向。
我以相当标准的方式使用 django-autocomplete-light,只需按照http://django-autocomplete-light.readthedocs.io/en/master/tutorial.html上的教程进行操作。
但是,每当我使用 Select2 小部件时,选项的值都会自动成为模型实例的主键。有没有办法使用将值设置为模型的另一个字段?
我在一个小应用程序上使用 Django-autocomplete-light。UI 似乎有效,我可以从一些可见值中进行选择。当我在框中键入一个或多个字母时出现问题。通常它应该过滤/选择结果,相反,我收到错误“无法加载结果”(见图)。
似乎 jquery 工作正常,除了当我在框中输入时没有过滤。很高兴添加更多代码,只是不确定我需要添加什么。
模型.py
class Encounter(models.Model):
patid = models.ForeignKey(get_user_model(), on_delete=models.CASCADE, verbose_name=('Patient Name'), related_name='patient')
created_by = models.ForeignKey(Users, editable=False, null=True, blank=True, on_delete=models.PROTECT, related_name='encounter_created_by')
encounter_date = models.DateField()
encounter_label = models.ForeignKey(EncounterReason, on_delete=models.PROTECT, verbose_name=('Encounter Reason'), related_name='fk_reason')
class EncounterReason(models.Model):
reason = models.CharField(max_length=256, blank=True, null=True)
valueset_id = models.CharField(max_length=256, blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)
视图.py
class EncounterReasonAutocomplete(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 EncounterReason.objects.none()
qs = EncounterReason.objects.all()
if self.q:
qs = qs.filter(name__istartswith=self.q)
return qs
Run Code Online (Sandbox Code Playgroud)
表格.py
class …
Run Code Online (Sandbox Code Playgroud)