如何让 Django-Ajax-Selects 在 Django Admin 中工作?

发布于 2024-10-15 21:39:46 字数 1381 浏览 13 评论 0原文

Django Ajax Selects

这是我所做的,但无济于事:

添加了 ajax_select 到我的 settings.py 中的 INSTALLED_APPS

添加了 (r'ajax_select', include('ajax_select.urls')),urls.py

将其添加到 settings.py

AJAX_LOOKUP_CHANNELS = {
    'postal_code': {'model': 'places.PostalCode', 'search_field': 'code'}
}

将此添加到 admin.py

class AddressAdmin(admin.ModelAdmin):
    form = make_ajax_form(Address, {'postal_code':'postal_code'})

admin.site.register(Address, AddressAdmin)

当我尝试查看管理站点中的相关页面时并在文本框中输入什么内容都没有出现。查看Firebug,似乎什么也没有发生。大概是因为没有包含JS;我想表单/小部件不包含任何其他管理小部件的方式。

因此,我尝试以我知道的唯一方式包含媒体:

class AddressForm(forms.ModelForm):
    postal_code = AutoCompleteSelectField('postal_code')

    class Media:
        css = {
            'all': ['media/css/ui-lightness/jquery-ui-1.8.9.custom.css', 'media/css/iconic.css']
        }
        js = ['media/js/jquery-1.4.4.min.js', 'media/js/jquery-ui-1.8.9.custom.min.js', 'media/js/ajax_select.js']

class AddressAdmin(admin.ModelAdmin):
    form = AddressForm

admin.site.register(Address, AddressAdmin)

现在所有内容都包含在内,但它仍然不起作用。似乎什么也没有发生。

我是不是漏掉了一步?为什么没有触发任何 JS 事件?

Django Ajax Selects

Here's what I did, to no avail:

Added ajax_select to my INSTALLED_APPS in settings.py

Added (r'ajax_select', include('ajax_select.urls')), to urls.py

Added this to settings.py:

AJAX_LOOKUP_CHANNELS = {
    'postal_code': {'model': 'places.PostalCode', 'search_field': 'code'}
}

Added this to admin.py:

class AddressAdmin(admin.ModelAdmin):
    form = make_ajax_form(Address, {'postal_code':'postal_code'})

admin.site.register(Address, AddressAdmin)

When I tried viewing the relevant page in the admin site and typed in the text box nothing came up. Looking in Firebug, nothing seems to be happening. Presumably because no JS is included; I guess the form/widgets don't include any the way the other admin widgets do.

So, I tried including the media the only way I know how:

class AddressForm(forms.ModelForm):
    postal_code = AutoCompleteSelectField('postal_code')

    class Media:
        css = {
            'all': ['media/css/ui-lightness/jquery-ui-1.8.9.custom.css', 'media/css/iconic.css']
        }
        js = ['media/js/jquery-1.4.4.min.js', 'media/js/jquery-ui-1.8.9.custom.min.js', 'media/js/ajax_select.js']

class AddressAdmin(admin.ModelAdmin):
    form = AddressForm

admin.site.register(Address, AddressAdmin)

Now everything gets included, but it still doesn't work. Nothing seems to be happening.

Did I miss a step? Why aren't any JS events firing?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

错々过的事 2024-10-22 21:39:46

好吧,问题似乎是我必须使用旧版本的自动完成

Okay, the problem seems to be that I have to use the old version of autocomplete.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文