Tre*_*own 5 django-forms django-admin django-autocomplete-light
我已成功设置自动完成注册表并拥有我的django管理表单,如果您转到表单,则自动完成工作.我希望能够扩展自动填充功能,以便在list_filter视图上工作.因此,当您查看Admin.py生成的视图时 - 生成的list_filter输入也将使用自动完成jquery +服务URL.
我没有看到文档中列出的任何内容,任何人都有任何指针?
如果您使用的 Django 版本高于 2.0,您可以尝试为此使用内置的自动完成字段。
默认情况下,管理员对这些字段使用选择框界面 ()。有时您不想承担选择所有相关实例以显示在下拉列表中的开销。
Select2 输入看起来与默认输入相似,但带有异步加载选项的搜索功能
有一个简单的应用程序可以做到这一点:
安装使用: pip install django-admin-autocomplete-filter
然后添加admin_auto_filters到INSTALLED_APPS项目的内部 settings.py 中。
假设我们有以下模型:
class Artist(models.Model):
name = models.CharField(max_length=128)
class Album(models.Model):
name = models.CharField(max_length=64)
artist = models.ForeignKey(Artist, on_delete=models.CASCADE)
cover = models.CharField(max_length=256, null=True, default=None)
Run Code Online (Sandbox Code Playgroud)
并且您想根据艺术家在专辑管理中过滤结果,那么您可以在艺术家中定义搜索字段,然后将过滤器定义为:
from admin_auto_filters.filters import AutocompleteFilter
class ArtistFilter(AutocompleteFilter):
title = 'Artist' # display title
field_name = 'artist' # name of the foreign key field
class ArtistAdmin(admin.ModelAdmin):
search_fields = ['name'] # this is required for django's autocomplete functionality
...
class AlbumAdmin(admin.ModelAdmin):
list_filter = [ArtistFilter]
'''
defining this class is required for AutocompleteFilter
it's a bug and I am working on it.
'''
class Media:
pass
Run Code Online (Sandbox Code Playgroud)
执行这些步骤后,您可能会看到过滤器为:
您应该定义自己的管理过滤器,该过滤器继承自django.contrib.admin.SimpleListFilter. 然后应该为此过滤器提供您自己的 HTML 模板,该模板将使用其中一个django-autocomplete-light小部件。作为小部件的参数,您应该定义所需的自动完成 URL。并且不要忘记为其添加适当的 JS 和 CSS。
所有这些都是在特殊应用程序中完成的:dal-admin-filters
| 归档时间: |
|
| 查看次数: |
1363 次 |
| 最近记录: |