2014-10-09 58 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