django - 我们如何在 django 管理搜索字段中搜索多对多字段
问题描述
在这里,我在 Django 模型中定义了多对多字段,我想在我的 Django 管理搜索字段中搜索多对多字段。由于我们不能在自定义 djangomodelAdmin 类的“search_fields=[]”中放置多对多字段。如果有人有解决方案,请给出一些建议。
解决方案
假设我们有两个模型Item
和SubItem
:
class SubItem(Model):
name = CharField(max_length=128)
class Item(Model):
subitems = ManyToManyField(SubItem)
我们可以通过在 的中使用双下划线 ( )来搜索相关对象的名称:SubItem
__
search_fields
ModelAdmin
class ItemAdmin(admin.ModelAdmin):
search_fields = ['subitems__name']
如果因此输入查询,则搜索将在 s 的名称上进行SubItem
,并且Item
将返回包含此类子项的 s。
推荐阅读
- symfony - Symfony 3:如何在表单集合中分别提交表单?
- c# - 比较两个数组并返回一个整数数组,其值是比较的结果
- python - 在python的邻接矩阵中打印图的所有边
- sql - 如果另一个表中的值与第一个表中的值匹配,则从一个表中选择
- json - 使用 jq 通过包含字符串来查找数组元素
- javascript - hasOwnProperty 不是 Node.js 中的函数?
- javascript - 脚本执行时擦除脚本标签文本
- c# - 使用c#从一个csv文件中按值拆分多个csv文件
- c - c函数返回两种可能的类型之一
- c# - Entity Framework 实体的最佳实践覆盖 Equals 和 GetHashCode