インライン管理用クエリーセットをオーバーライドする際に問題があります。今、私はqs.filter(user=request.user)
またはqs.filter(date__gte=datetime.today())
問題なく行うことができますインライン管理用クエリーセットのオーバーライド
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)
:
はここで沼地標準の親管理とインライン管理者です。
しかし、私が必要とするのは、MyInlineModelインスタンスかParentAdminModelインスタンス(モデルではありません!)です。これに基づいてクエリセットをフィルタリングする必要があります。
queryset()メソッド内でself.instanceやobj(get_readonly_fields()やget_formset()など)を取得することはできますか?
希望はこれが理にかなっています。どんな助けでも大歓迎です。この上の多くのため
class MyInlineModel(models.Model):
car=models.Foreignkey(Car)
#blah
;:
役立つhttp://stackoverflow.com/questions/14950193/how-to-get-the-current-model-instance-from-inlineadmin-in-djangoかもしれません –
Django 1.6では、querysetメソッドの名前がget_querysetに変更されたことに注意してください。 https://docs.djangoproject.com/en/dev/releases/1.6/#get-query-set-and-similar-methods-renamed-to-get-queryset – jenniwren