Django get_or_create并在之后递增

时间:2017-09-21 12:24:10

标签: python django django-models

我遇到了问题。 我想存储搜索到的表达式并在其后增加其计数。 我使用get_or_create方法,但每次都会抛出错误。

models.py

class TopSearch(models.Model):
     expression = models.CharField(max_length=255)
     count = models.IntegerField(default=0)

我想这个

  1. 如果搜索表达式存在,请将其计数增加1.
  2. 否则,创建它并立即将其计数增加1.
  3. 谢谢!

2 个答案:

答案 0 :(得分:3)

根据@Melvyn

的建议,也许会有类似这样的事情
from django.db.models import F

obj, created = TopSearch.objects.get_or_create(expression=something, defaults={'count': 1})
if created:
    obj.count = F('count') + 1
    obj.save()

答案 1 :(得分:0)

你可以这样做:

Sub PopulateUserForm()

    'Using CostPerItem as a example
    Dim CostPerItemText As String

    CostPerItemText = "$15"

    'Having set the names of the labels
    UserForm1.CostLabel1.Caption = CostPerItemText
    UserForm1.CostLabel2.Caption = CostPerItemText
    UserForm1.CostLabel3.Caption = CostPerItemText
    UserForm1.Show

End Sub

获取或创建返回对象和布尔值:如果已创建则为True,如果为get则为False。