Django 重写内联管理的queryset
我在重写内联管理员的查询集时遇到一些问题 以下是bog标准的父管理和内联管理: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
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用于下拉列表和类似的小部件。请看。