Python Django自动完成指示灯空选择框

Python Django自动完成指示灯空选择框,python,django,python-3.x,django-autocomplete-light,Python,Django,Python 3.x,Django Autocomplete Light,为什么django autocomplete light的实现会导致一个空的下拉框?我认为可能是加载静态文件或映射到URL.py错误 编辑:我是否需要收集dal使用的静态文件?有静电吗?我意识到是的,所以我收集了我的文件并检查了它们的路径,但什么都没有改变 我在GitHub问题中也看到过类似的问题,但是那里的解决方案并不影响我的情况,而且解决方案通常只是对所使用字段类型的妥协 我遵循了dal教程并生成了以下文件。这些文件都在我的操作应用程序中,包括url.py: models.py class

为什么django autocomplete light的实现会导致一个空的下拉框?我认为可能是加载静态文件或映射到URL.py错误

编辑:我是否需要收集dal使用的静态文件?有静电吗?我意识到是的,所以我收集了我的文件并检查了它们的路径,但什么都没有改变

我在GitHub问题中也看到过类似的问题,但是那里的解决方案并不影响我的情况,而且解决方案通常只是对所使用字段类型的妥协

我遵循了dal教程并生成了以下文件。这些文件都在我的
操作
应用程序中,包括url.py:

models.py

class Entity(models.Model):
    entity = models.CharField(primary_key=True, max_length=12)
    entityDescription = models.CharField(max_length=200)
    def __str__(self):
        return self.entityDescription

class Action(models.Model):
    entity = models.ForeignKey(Entity, on_delete=models.CASCADE, db_column='entity')
    action = models.CharField(max_length=50)
    def __str__(self):
        return '%s' % self.entity
forms.py:

class ActionForm(ModelForm):
class Meta:
    model = Action
    fields = '__all__'
    widgets = {
        'entityDescription': autocomplete.ModelSelect2(url='eda')
    }

ActionFormSet = modelformset_factory(Action, extra=1, exclude=(), form=ActionForm)
我正在使用
脆表单
呈现表单集

views.py:

class EntityAutocomplete(autocomplete.Select2QuerySetView):
def get_queryset(self):
    qs = Entity.objects.all()
    if self.q:
        qs = qs.filter(entityDescription__istartswith=self.q)
    return qs
URL.py:

urlpatterns = [
    url(r'actions', views.actions, name='actions'),
    url(
        r'^eda/$',
        views.EntityDescriptionAutocomplete.as_view(),
        name='eda',
    ),
]
这在我的模板中:

{% block footer %}
<script type="text/javascript" src="/static/collected/admin/js/vendor/jquery/jquery.js"></script>
{{ form.media }}
{% endblock %}
正在反转url

>>>from django.urls import reverse
>>>reverse('eda')
'/eda/'
…似乎和预期的一样

使用此设置,结果是一个带有Django的
----
符号的选择框:

如果我删除了meta类中的小部件设置,而是直接覆盖该字段:

class ActionForm(ModelForm):
    entityDescription = ModelChoiceField(
        queryset=Entity.objects.all(),
        widget=autocomplete.ModelSelect2(url='eda')
        )
    class Meta:
        model = Action
        fields = '__all__'
…结果是一样的


我需要做些别的事情来获得正确的静态文件吗?我是否映射到URL.py不正确?

浏览器控制台上的任何错误
[违规]将非被动事件侦听器添加到滚动阻止“鼠标滚轮”事件。考虑将事件处理程序标记为“被动”以使页面更加响应。每当单击下拉时,警报就会显示出来。但在单击任何下拉菜单时,它也会显示出来。没有其他错误。@ArpitSolanki,即使我没有在Admin中使用它,我也需要在Admin中注册它吗?嗨,Cameron,你解决了这个问题吗?
class ActionForm(ModelForm):
    entityDescription = ModelChoiceField(
        queryset=Entity.objects.all(),
        widget=autocomplete.ModelSelect2(url='eda')
        )
    class Meta:
        model = Action
        fields = '__all__'