1
可以说,我有一个模型django中的计数字段?
class Entity(models.Model)
count = models.IntegerField()'
问:是否有在Django,可以帮助我提高计数随时采取行动的值的字段类型。我目前正在考虑每次更新这个值。但我觉得这可能不是有效的,因为这涉及读取当前值然后增加一个
可以说,我有一个模型django中的计数字段?
class Entity(models.Model)
count = models.IntegerField()'
问:是否有在Django,可以帮助我提高计数随时采取行动的值的字段类型。我目前正在考虑每次更新这个值。但我觉得这可能不是有效的,因为这涉及读取当前值然后增加一个
我不确定是否有任何模型字段可以帮助,但是您可以使用F()-expression来防止额外的数据库操作:
# Given this model class:
class Entity(models.Model):
count = models.IntegerField()
# Increment like this:
entity_qs = Entity.objects.filter(pk=some_pk) # Note: This does not fetch!
entity_qs.update(count=F('count')+1) # Single SQL update statement
非常感谢,这真的很有帮助 – acquayefrank 2014-10-09 18:59:07
您可以使用F() - 表达式(见https://docs.djangoproject.com/en/1.7/ref/models/queries/#django.db.models.F)至少防止额外的读取操作。 – 2014-10-09 18:11:53