栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在admin中以内联形式限制select中的外键选择

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在admin中以内联形式限制select中的外键选择

将请求实例用作obj的临时容器。重写内联方法formfield_for_foreignkey来修改查询集。这至少在Django 1.2.3上有效。

class RoomInline(admin.TabularInline):    model = Room    def formfield_for_foreignkey(self, db_field, request=None, **kwargs):        field = super(RoomInline, self).formfield_for_foreignkey(db_field, request, **kwargs)        if db_field.name == 'inside_room': if request._obj_ is not None:     field.queryset = field.queryset.filter(building__exact = request._obj_)   else:     field.queryset = field.queryset.none()        return fieldclass BuildingAdmin(admin.ModelAdmin):    inlines = (RoomInline,)    def get_form(self, request, obj=None, **kwargs):        # just save obj reference for future processing in Inline        request._obj_ = obj        return super(BuildingAdmin, self).get_form(request, obj, **kwargs)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/395176.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号