管理中的django筛选器多选列表
我有一个django模型,具有自引用多对多字段,如下所示管理中的django筛选器多选列表,django,django-admin,Django,Django Admin,我有一个django模型,具有自引用多对多字段,如下所示 class Product(ModelBase): name = models.CharField(max_length=1000) category = models.ForeignKey(Category, on_delete=models.DO_NOTHING) company = models.ForeignKey(Company, on_delete=models.DO_NOTHING) alt
class Product(ModelBase):
name = models.CharField(max_length=1000)
category = models.ForeignKey(Category, on_delete=models.DO_NOTHING)
company = models.ForeignKey(Company, on_delete=models.DO_NOTHING)
alternatives = models.ManyToManyField('self', symmetrical=False, blank=True)
我对django管理表单不是特别满意,它将备选方案的选项列为多选列表框,因为对于大量的产品,选择一个或多个备选产品会变得单调乏味。
有没有一种方法可以丰富这种用户体验,我看过django高级过滤器,但它不适用于django 3。基本上,如果我可以有一个typeahead搜索来过滤列表中的项目,并根据选择的类别限制初始列表
----更新----
管理员
感谢您的帮助。将
ManyToManyField
的默认行为显示为
您需要做的是在admin.py
中添加一行,使用该选项将ManyToManyField
显示更改为水平显示
然后,它将显示在您的管理页面上,如下所示:
此示例可以在组
添加表单上的身份验证和授权
管理员上看到
你能分享你的
admin.py
文件吗?
@admin.register(Category)
class CategoryAdmin(admin.ModelAdmin):
search_fields = ['name', ]
@admin.register(Company)
class CompanyAdmin(admin.ModelAdmin):
search_fields = ['name', ]
list_display = ['name', 'website', ]
@admin.register(Product)
class ProductAdmin(admin.ModelAdmin):
search_fields = ['name', ]
list_filter = ['category', ]
list_display = ['name', 'category', 'company', ]
from django.contrib import admin
@admin.register(Product)
class ProductAdmin(admin.ModelAdmin):
search_fields = ['name', ]
list_filter = ['category', ]
list_display = ['name', 'category', 'company', ]
filter_horizontal = ['alternatives', ]