F()函数的优点先从下面的例子说起吧。
例子1
reporter = Reporters.objects.get(name='Tintin')
reporter.stories_filed += 1
reporter.save()
例子2
from django.db.models import F
reporter = Reporters.objects.get(name='Tintin')
reporter.stories_filed = F('stories_filed') + 1
reporter.save()
两个程序的功能是为了计数(或减数)
例子1中的写法,应该是比较常见的。它的工作原理是,将对象从数据库中查出来放到内存中,然后计数,再存入到数据库中。
例子2中的工作原理是,直接在数据库中查出数据,计数后更改数据库。
这样的话,请求的响应速度就显而易见了。优化之路,任重而道远。
Ps:from django.db.models * 中有好多自带方法,一定要会常用的。