You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django4.1后台能否为Phrase模型添加Unit虚拟字段过滤?

可行,实现方法如下

你定义的unit是Python层面的@property属性,Django ORM无法直接基于它做数据库层面的筛选,但可以通过Phrase关联的Exercise模型的unit字段来实现筛选——Django Admin支持通过双下划线__跨关联模型指定筛选字段。

具体实现步骤:

  1. 在Phrase对应的Admin类中,修改list_filter配置,直接指定关联路径:
from django.contrib import admin
from .models import Phrase

class PhraseAdmin(admin.ModelAdmin):
    # 直接通过exercise__unit关联筛选
    list_filter = ('exercise__unit',)
  1. 如果希望筛选器只显示当前Phrase关联到的Unit(而非系统中所有Unit),可以使用RelatedOnlyFieldListFilter:
class PhraseAdmin(admin.ModelAdmin):
    list_filter = (
        ('exercise__unit', admin.RelatedOnlyFieldListFilter),
    )

配置完成后,Django Admin后台的Phrase列表页会出现按Unit筛选的选项,点击对应Unit即可过滤出关联到该Unit的所有Phrase。

内容的提问来源于stack exchange,提问作者Kifsif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 22:50:36