我有一个基本的django模型,我想知道有没有办法让搜索字段搜索我映射到的值,而不是搜索保存在数据库中的值,是否有可能的方法,我可以按“Premium”值搜索?
Model.py
class User(models.Model):
account = models.ForeignKey('Account')
name =models.CharField(max_length=50)
ACCOUNT_CHOICES = (
(1, 'Premium'),
(0, 'Normal'),)
type = models.CharField(choices=ACCOUNT_CHOICES)
Admin.py
class UserAdmin(admin.ModelAdmin):
search_fields = ['name','type']
pass
admin.site.register(User,UserAdmin)
答案 0 :(得分:2)
评论讨论摘要;
您需要为搜索过滤器设置自定义查询集,该过滤器会尝试将选择显示字段反向查找其值。另一个小问题是多个值可以具有相同的选择显示名称,因此您需要考虑这一点。
以下是如何实现此目标的示例:
https://github.com/sivaa/django-custom-search-filter/blob/master/app/admin.py