Django 重写内联管理的queryset

Django 重写内联管理的queryset,django,django-admin,django-forms,Django,Django Admin,Django Forms,我在重写内联管理员的查询集时遇到一些问题 以下是bog标准的父管理和内联管理: class MyInlineAdmin(admin.TabularInline): model = MyInlineModel def queryset(self, request): qs = super(MyInlineAdmin, self).queryset(request) return qs class ParentAdmin(admin.ModelAdm

我在重写内联管理员的查询集时遇到一些问题

以下是bog标准的父管理和内联管理:

class MyInlineAdmin(admin.TabularInline):
    model = MyInlineModel
    def queryset(self, request):
        qs = super(MyInlineAdmin, self).queryset(request)
        return qs

class ParentAdmin(admin.ModelAdmin):
    inlines = [MyInlineAdmin]
admin.site.register(ParentAdminModel, ParentAdmin)
现在我可以做
qs.filter(user=request.user)
qs.filter(date\u gte=datetime.today())
没问题

但我需要的是MyInlineModel实例或ParentAdminModel实例(而不是模型!),因为我需要基于此筛选查询集

是否可以在queryset()方法中获取self.instance或obj(如get_readonly_fields()或get_formset())之类的内容

希望这是有意义的。非常感谢您的帮助

class MyInlineAdmin(admin.TabularInline):
    model = MyInlineModel
    def formfield_for_foreignkey(self, db_field, request=None, **kwargs):
        """enable ordering drop-down alphabetically"""
        if db_field.name == 'car':
            kwargs['queryset'] = Car.objects.order_by("name") 
        return super(MyInlineAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)

class ParentAdmin(admin.ModelAdmin):
    inlines = [MyInlineAdmin]

admin.site.register(ParentAdminModel, ParentAdmin)
我假设你的模型看起来像:

class MyInlineModel(models.Model):
    car=models.Foreignkey(Car)
    #blah
更多关于这方面的信息;请阅读formfield上的django文档以获取\u foreignkey-->

可能会有帮助。请注意,在Django 1.6中,queryset方法被重命名为get_queryset。这根本不起作用。foreignkey的
formfield\u用于下拉列表和类似的小部件。请看。