我想使用limit_choices_to限制管理界面中的ForeignKey选项;但是,我想在不改变模型的情况下实现这一点,因为模型是从库中引入的,我无法控制。动态实现这一目标的方法是什么?或者我可以使用管理模型上的字段来实现这一目标吗?
谢谢, --Eytan
答案 0 :(得分:12)
Django提供了一个管理钩子来修改外键查询集:formfield_for_foreignkey
class MyModelAdmin(admin.ModelAdmin):
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == "car":
kwargs["queryset"] = Car.objects.filter(owner=request.user)
return super(MyModelAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)