跟踪django模型实例上的陈旧字段

django-stalefields的Python项目详细描述


在Django模型实例中跟踪变化的字段。BR/> BR/>使MIXIN成为可用的属性:

-'ISSSTALE 'BR/> 'STAREYFIEL'
BR/>以及方法:
BR/> -'SaveStIrr'():BR/> BR/>这将有选择地只更新过时的列。熟悉的
`model.objects.filter(pk=pk.update(**stale_fields)`pattern(但仍然
解析'f()`或'auto_now'构造)。



然后使用“使用BR/>模型中的MIXIN”的指令。
BR/> 'BR/> $PIP安装Django StaleFielsBr/>‘BR/> BR/>或者如果您有兴趣开发它,请使用[ValualEnv][]和
[ValualEnvRePrAPr][]。默认的“设置。Py”将在其当前位置查找
StReFieldPosib.BM/ValeNeV Django StaleFielsBr/>(Django Stalefield)$PippayApp/Posiv.PiP.BR/>(Django Stalefield)$ExpPayppApp/Mealth.Py TestTestPosipApp
‘BR/> BR/> BR/> AuxMixin所有模型
BR/>您需要要设置两个“settings.py”参数:

`` python
< Br/>>Br/>>Br/>>Br/>‘Br/>‘BR/>< BR/>这为所有
注册模型提供了方法和功能*。
BR/> BR/>人工混入模型Br/> By/>‘Python’BR/>从Django.dB导入模型< Br/>从Stistelfield导入StestelFixIng/Br>>BR/>类TestModel(StaseFielSmixIn,Model·model):一个简单的测试模型,用于检验过时的字段,与“”Br/>布尔=模型混合。BooleanField(默认=true)BR/>字符=模型。CharField(空白=真,Max长度=80)< BR/>‘BR/>< BR/>< BR/> >使用它在shell < BR/> By/>‘Python Br/>(Django Stalefield)$ /Maul.Py壳牌< BR/> & Gt;&从测试中导入测试模型;从测试中导入测试模型;从测试中导入测试模型;从测试中导入测试模型;从测试中导入测试模型;从测试中导入测试模型;从测试中导入测试模型;从测试中导入测试模型;从测试中导入测试模型;从测试中导入测试模型;从测试中导入测试模型;从测试中导入测试模型;从测试中导入测试模型(布尔值=真,字符=测试)
>>;从测试中是否陈旧
>;从测试中是否陈旧
>;从测试中是否陈旧
>;从测试中是否陈旧
>;从测试中是否陈旧
>;从测试中是否陈旧
>;从测试中是否陈旧
>;从测试中导入测试中是否陈旧
>;从测试中字段
(“boolean”,)
>;>;tm.characters=“have changed”
>;>;tm.is盱stale
true
>;>;tm.stale眙fields
('boolean','characters',)
>;>;tm.save眙dirty();只需通过.update()
>;>;tm.is盱stale
>;>;false
>;>;tm.获取陈旧字段
()
````





三个原因:

*方便性
*优化
*避免错误


使用[signals][]时,尤其是[pressave][]时,可以
查看哪些字段发生了更改。根据特定字段是否已更改,信号可能会更改其
行为,而
否则,您只能处理调用了模型的save()
方法的事件。

任何时候在django中调用无聊的old`save(),所有列都会再次插入
,这可能非常繁重,例如,在一个
列中有大量文本,或者有许多索引不需要进行不必要的更新检查。只有通过“update()”更新更改的列要快得多,但需要大量的状态监视。简单地说,这是更好的你你的数据库!

最后,如果多个线程为不同的操作调用“save()”,则只有最近的线程获胜。如果他们都只插入列的变化值,那就不会有问题!这类错误是一个追查的噩梦……



-目录字段..


[pip]:http://www.pip-installer.org/en/latest/
[virtualenv]:https://pypi.python.org/pypi/virtualenv
[virtualenvwrapper]:https://pypi.python.org/pypi/virtualenvwrapper
[signals]:http://docs.djangopject.com/en/1.2/topics/signals/
[pressave]:http://docs.djangoproject.com/en/1.2/ref/signals/django.db.models.signals.pre_u save
[堆栈溢出]:http://stack overflow.com/questions/110803/stale-fields-in-django

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java无法打开摄像头,当点击摄像头图标时,toast消息显示“无法创建图像文件”   用java压缩/压缩图像文件   访问drools guvnor的java代码   java数据关联使用hibernate二级缓存和hazelcast   java如何全局禁用默认上下文菜单   利用系数在Java中对信号进行matlab滤波   java如何在adf中初始化ViewObject的一行?   IntelliJ的UI设计器中的java奇怪表单行为   java如何像torrents一样通过全球互联网发送数据?   用于循环检查播放器位置的java   使用Struts 2输出时出现java JSON异常错误   java primefaces效果不起作用   java卡洗牌(SPOJ/Interviewstreet)   java你能用方法创建一个类的对象吗?   java如何从平面树结构中查找所有子体   java如何让用户在使用cdrecord时指定Windows驱动器号?   玩。使用记事本的java mp3文件   java动态参数重构   使用java在REST web服务中获取http请求的内容