con*_*ick 13 django django-forms django-admin
我在为内联管理员覆盖查询集时遇到了一些麻烦.
这是一个沼泽标准的父管理员和内联管理员:
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
| 归档时间: | 
 | 
| 查看次数: | 8760 次 | 
| 最近记录: |