是否可以在Django Admin界面上进行反向关系搜索?
我的Django app数据库模式包含以下模型:
class Tag(models.Model):
title = models.CharField(max_length=50)
class Publication(models.Model):
title = models.CharField(max_length=200)
tags = models.ManyToManyField(Tag, blank=True, related_name="publications")
我添加了一个搜索字段,用于在admin.py文件中按标题查找标记:
class TagAdmin(admin.ModelAdmin):
list_display = ('title',)
search_fields = ('title',)
因此,当我在django管理界面的搜索字段中键入标签标题时,会出现匹配标签标题的列表。现在我想做到这一点,如果我在搜索字段中输入标签标题,就会出现匹配的出版物。
换句话说,我想象的是:
class TagAdmin(admin.ModelAdmin):
list_display = ('title',)
search_fields = ('publications',)
这当然不起作用......但这就是想法......
这甚至可能吗?和/或我是否正确地走这条路?如果是这样,有人可以建议一种方法来做这个或资源吗?如果你愿意这样做,请记住我是一个非常初学者。感谢。
答案 0 :(得分:1)
您不应该尝试使用注册到Tag模型的管理类来执行此操作。相反,为Publication设置管理类并设置其search_fields:
class PublicationAdmin(admin.ModelAdmin):
list_display = ('title',)
search_fields = ('tags__title',)