跟踪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如何创建带有图标的按钮?   java我想实现定制的Android应用程序物理键盘键,我需要修改qwerty吗。kl文件或如何添加新的键盘映射?   java Toast并没有显示在Android应用程序中,但它首先被显示,然后在两天后停止   java如何检查URLConnection是否已处于连接状态?   java无法访问其他类中的方法(Android Studio)   java无法获取访问字符串中字符的方法   使用jdax/dex2jar反编译后的java类   java如何使用Junit获取数据块报告   如何在java/j2ee中以编程方式为新闻网站生成RSS?   java如何使用已声明的事实类型动态重新加载规则?   java单例模式使用   javaq:Mockito使用@Mock和@Autowired   java在Raspberry Pi上将RXTX集成到OSGi包时未解决的需求