将原始SQL查询转换为Django QuerySet

时间:2014-09-19 23:07:29

标签: python django django-queryset

这是我当前的SQL查询。

'''UPDATE chat  SET recd="1"  WHERE nick_from="%s" AND nick_to="%s"
                           ''' % (sender_user, reciever_user)

我想将其转换为Django ORM QuerySet。

该模型如下。

class Chat(models.Model):
    # id = models.IntegerField(primary_key=True)
    nick_from = models.CharField(max_length=255)
    nick_to = models.CharField(max_length=255)
    message = models.TextField()
    sent = models.DateTimeField()
    recd = models.IntegerField()
    time = models.BigIntegerField()
    recd_email = models.IntegerField()

    class Meta:
        db_table = 'chat'

2 个答案:

答案 0 :(得分:3)

您可以使用QuerySet.filterQuerySet.update

chat.objects.filter(nick_from=sender_user, nick_to=receiver_user).update(recd='1')

答案 1 :(得分:1)

我并没有真正关注特定于ORM的填充程序,而是支持原始SQL。在django,你可以easily do this

chat.objects.raw(''''UPDATE chat  SET recd="1"  WHERE nick_from="%s" AND nick_to="%s"
                       ''' % (sender_user, reciever_user))

如果这没有帮助,请发表评论。