在django中进行SQL查询。怎么翻译?

时间:2014-02-07 14:57:35

标签: python sql django

我有这个SQL查询:

"INSERT INTO $TABLENAME (address, count) VALUES(%s, %s) \
            ON DUPLICATE KEY UPDATE count = VALUES(count) + count"

如何将其翻译成django?

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找get_or_create https://docs.djangoproject.com/en/dev/ref/models/querysets/#get-or-create

前面的示例假设$ TABLENAME由名为MyModel的django模型表示:

models.py:

class MyModel(models.Model):
    address = models.CharField(max_length=300, unique=True)
    count = models.IntegerField(default=0)

views.py:

new_model, created = MyModel.objects.get_or_create(address="123 1st st")
new_model.count += 1
new_model.save()

get_or_create将创建具有给定属性的新对象,或者如果它已经存在,它将返回您可以更新的现有对象。