gpt4 book ai didi

django - 覆盖内联管理员的查询集

转载 作者:行者123 更新时间:2023-12-03 23:53:29 25 4
gpt4 key购买 nike

我在覆盖我的内联管理员的查询集时遇到了一些麻烦。

这是一个沼泽标准的父管理员和内联管理员:

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())之类的东西?

希望这是有道理的。非常感谢任何帮助。

最佳答案

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_for_foreignkey 上的 Django 文档-->
https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.formfield_for_foreignkey

关于django - 覆盖内联管理员的查询集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15976683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com