我有2个模型与M2M类型的关系有关。我在管理员中使用filter_horizontal
来编辑我的实体。Django filter_horizontal filtering
但是,我想要控制在filter_horizontal
小部件左侧显示的内容。例如,我想过滤并仅显示符合某些特定条件的实体。
我有2个模型与M2M类型的关系有关。我在管理员中使用filter_horizontal
来编辑我的实体。Django filter_horizontal filtering
但是,我想要控制在filter_horizontal
小部件左侧显示的内容。例如,我想过滤并仅显示符合某些特定条件的实体。
这个问题在Django管理员中总是很棘手。我想,在内嵌defenition你可以做这样的事情:
类巴德明(admin.TabularInline): ...
def get_queryset(self, request):
qs = super(BAdmin, self).get_queryset(request)
return qs.filter(user=request.user)
我想我找到了!
class MyModelAdmin(admin.ModelAdmin):
def formfield_for_manytomany(self, db_field, request, **kwargs):
if db_field.name == "cars":
kwargs["queryset"] = Car.objects.filter(owner=request.user)
return super(MyModelAdmin, self).formfield_for_manytomany(db_field, request, **kwargs)
ModelAdmin.formfield_for_manytomany(db_field, request, **kwargs)
THX!我认为它会抓住你正在编辑的模型,但不会是预先填充在“filter_horizontal”左侧框中的“子” –