【问题标题】:django autocomplete light Uncaught TypeError: $ is not a functiondjango autocomplete light Uncaught TypeError: $ is not a function
【发布时间】:2020-12-22 18:33:30
【问题描述】:

我正在使用 django-autocomplete-light==3.8.1 和 Django==3.0.6。 我在旧版本的 django 中使用过它并且它可以工作,但是在新版本中我收到了这个 javascript 错误$ is not a function

这是我的设置:

INSTALLED_APPS = [
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'dal',
'dal_select2',
'myapp',
'django.contrib.admin',
'django_extensions',
]

还有我的models.py

from django.db import models

class IP(models.Model):
    ip_address = models.CharField(max_length=15, db_index=True, unique=True)
    def __str__(self):
        return self.ip_address


class Account(models.Model):
    uid = models.PositiveIntegerField(db_index=True, unique=True)
    name = models.CharField(max_length=15, db_index=True, unique=True)
    ip = models.ForeignKey(IP, null=True, blank=True, on_delete=models.CASCADE)
    def __str__(self):
        return self.name

和我的管理员:

from django.contrib import admin
from dal import autocomplete
from .models import *

@admin.register(Account)
class AccountAdmin(admin.ModelAdmin):
    list_display = ('name', 'ip')
    form = AccountForm


@admin.register(IP)
class IPAdmin(admin.ModelAdmin):
    list_display = ('ip_address',)

class AccountForm(autocomplete.FutureModelForm):
    class Meta:
        model = Account
        fields = ('__all__')
        widgets = {
            'ip': autocomplete.ModelSelect2(url='ip-autocomplete'),
        }

奇怪的是它没有找到jquery。 这是我在管理 html 页面中看到的内容:

<script type="text/javascript" src="/admin/jsi18n/"></script>
<link href="/static/admin/css/vendor/select2/select2.css" type="text/css" media="screen" rel="stylesheet">
<link href="/static/admin/css/autocomplete.css" type="text/css" media="screen" rel="stylesheet">
<link href="/static/autocomplete_light/select2.css" type="text/css" media="screen" rel="stylesheet">
<script type="text/javascript" src="/static/admin/js/vendor/jquery/jquery.js"></script>
<script type="text/javascript" src="/static/admin/js/vendor/select2/select2.full.js"></script>
<script type="text/javascript" src="/static/admin/js/jquery.init.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/autocomplete_light.js"></script>
<script type="text/javascript" src="/static/admin/js/core.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/select2.js"></script>
<script type="text/javascript" src="/static/admin/js/admin/RelatedObjectLookups.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/i18n/en.js"></script>
<script type="text/javascript" src="/static/admin/js/actions.js"></script>
<script type="text/javascript" src="/static/admin/js/urlify.js"></script>
<script type="text/javascript" src="/static/admin/js/prepopulate.js"></script>

有什么想法可以让 django-autocomplete-light 在管理页面内工作吗?

【问题讨论】:

    标签: django-autocomplete-light


    【解决方案1】:

    这很奇怪。在尝试了很多事情之后,包括删除所有静态文件并再次运行 collectstatic,我意识到如果我清除浏览器缓存,问题就会消失。

    【讨论】:

      猜你喜欢
      • 2016-04-02
      • 1970-01-01
      • 1970-01-01
      • 2014-08-15
      • 2021-12-16
      • 2018-04-20
      • 2017-04-13
      • 2015-01-14
      • 2014-07-06
      相关资源
      最近更新 更多