2014-10-09 49 views
1

可以说,我有一个模型django中的计数字段?

class Entity(models.Model) 
    count = models.IntegerField()' 

问:是否有在Django,可以帮助我提高计数随时采取行动的值的字段类型。我目前正在考虑每次更新这个值。但我觉得这可能不是有效的,因为这涉及读取当前值然后增加一个

+1

您可以使用F() - 表达式(见https://docs.djangoproject.com/en/1.7/ref/models/queries/#django.db.models.F)至少防止额外的读取操作。 – 2014-10-09 18:11:53

回答

3

我不确定是否有任何模型字段可以帮助,但是您可以使用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 
+0

非常感谢,这真的很有帮助 – acquayefrank 2014-10-09 18:59:07