如何使entry.category成为CategoryProxy的实例?有关详细信息,请参见代码:
class Category(models.Model): pass
class Entry(models.Model):
category = models.ForeignKey(Category)
class EntryProxy(Entry):
class Meta:
proxy = True
class CategoryProxy(Category):
class Meta:
proxy = True
entry = EntryProxy.objects.get(pk=1)
entry.category # !!! I want CategoryProxy instance here
从Category转换为CategoryProxy也是可以的,但是我对ORM内部结构以正确复制内部状态不是很熟悉…
编辑。 原因:我向CategoryProxy添加了方法,并想使用他:
EntryProxy.objects.get(pk=1).category.method_at_category_proxy()
编辑2. 目前,我是这样实现的:
EntryProxy._meta.get_field_by_name('category')[0].rel.to = CategoryProxy
但是看起来很糟糕…
在不访问数据库的情况下从模型类切换到代理类:
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
问题内容: 在要显示已注册模型的管理站点的根页面上,我想隐藏已注册到Django admin的多个模型。 如果我直接注销这些记录,由于添加新符号“ +”消失了,因此我无法添加新记录。 如何才能做到这一点 ? 问题答案: 基于x0nix的答案,我做了一些实验。似乎从返回空会将模型从index.html中排除,同时仍然允许你直接编辑实例。
主要内容:,创建模型,操作数据(CRUD),其他数据操作,,链接模型模型是表示我们的数据库表或集合类,并且其中所述类的每个属性是表或集合的字段。模型是在 app/models.py 中定义(在我们的例子中是:myapp/models.py) 创建模型 下面是创建一个 Dreamreal 模型实例 − 每一个模型继承自django.db.models.Model。 我们类有4个属性(3 CharField和1个整数),这将是表中的字段。 Meta类与db_table
我们现在将要创建的是一个能存储我们博客所有文章的东西。为了达到这个目的,我们将要讲解一下一个被称为objects(对象)的东西. 对象 在编程中有一个概念叫做 面向对象编程 。 它的思想是,与其用无聊的一连串的程序指令方式写程序,我们不如为事物建立模型,然后定义他们是怎样互相交互的。 那什幺是对象呢?它是一个属性和操作的集合。它听起来很奇怪,但我们会给你一个例子。 如果我们想塑造一只猫的模型,我们
Django 对各种数据库提供了很好的支持,包括:PostgreSQL、MySQL、SQLite、Oracle。 Django 为这些数据库提供了统一的调用API。 我们可以根据自己业务需求选择不同的数据库。 MySQL 是 Web 应用中最常用的数据库。本章节我们将以 Mysql 作为实例进行介绍。你可以通过本站的 MySQL 教程 了解更多Mysql的基础知识。 如果你没安装 mysql 驱动
有人有一个通用的例子吗?通过看到这样的例子,一定会明白我们真的需要使用代理模式吗
朴素贝叶斯法 朴素贝叶斯(native Bayes)法是基于贝叶斯定理与特征条件独立假设的分类方法。 对于给定的训练集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对于给定的输入$$x $$,利用贝叶斯定理求出后验概率最大的输出$$y$$。 基本方法 假设输入空间$$\mathcal{X}\subseteq Rn$$为$$n$$维向量的集合,输出空间为类标记集合$$\ma