【发布时间】:2013-04-05 07:04:51
【问题描述】:
我在为我的内联管理员覆盖查询集时遇到了一些问题。
这是一个沼泽标准的父管理员和内联管理员:
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__gte=datetime.today()) 没问题。
但我需要的是 MyInlineModel 实例或 ParentAdminModel 实例(不是模型!),因为我需要根据它过滤我的查询集。
是否有可能在 queryset() 方法中获得类似 self.instance 或 obj 的内容(如在 get_readonly_fields() 或 get_formset() 中)?
希望这是有道理的。非常感谢任何帮助。
【问题讨论】:
-
请注意,在 Django 1.6 中,queryset 方法被重命名为 get_queryset。 docs.djangoproject.com/en/dev/releases/1.6/…
标签: django django-admin django-forms