您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Django代理模型和ForeignKey

Django代理模型和ForeignKey

在不访问数据库的情况下从模型类切换到代理类:

class EntryProxy(Entry):
    @property
    def category(self):
        new_inst = EntryProxy()
        new_inst.__dict__ = super(EntryProxy, self).category.__dict__
        return new_inst

编辑:上面的代码片段似乎不适用于django 1.4。

从Django 1.4开始,我像这样手动获取所有值字段:

class EntryProxy(Entry):
    @property
    def category(self):
        category = super(EntryProxy, self).category
        new_inst = EntryProxy()
        for attr in [f.attname for f in category.__class__._Meta.fields] + ['_state']:
            setattr(new_inst, attr, getattr(category, attr))
        return new_inst

要从查询集切换到子代理类而不打数据库

class CategoryProxy(Category):
    @property
    def entry_set(self):
        qs = super(CategoryProxy, self).entry_set
        qs.model = EntryProxy
        return qs
Go 2022/1/1 18:46:57 有376人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶