2016-10-03 102 views
1

我有2個模型與M2M類型的關係有關。我在管理員中使用filter_horizontal來編輯我的實體。Django filter_horizo​​ntal filtering

但是,我想要控制在filter_horizontal小部件左側顯示的內容。例如,我想過濾並僅顯示符合某些特定條件的實體。

回答

0

這個問題在Django管理員中總是很棘手。我想,在內嵌defenition你可以做這樣的事情:

類巴德明(admin.TabularInline): ...

def get_queryset(self, request): 
    qs = super(BAdmin, self).get_queryset(request) 
    return qs.filter(user=request.user) 

https://docs.djangoproject.com/en/stable/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_queryset

+0

THX!我認爲它會抓住你正在編輯的模型,但不會是預先填充在「filter_horizo​​ntal」左側框中的「子」 –

3

我想我找到了!

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)

相關問題