Преобразование raw SQL запроса в 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'
58   2  

2 ответов:

Вы можете использовать QuerySet.filter и еще QuerySet.update:

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

Я действительно не обращаю внимания на ORM-специфические оболочки, предпочитая raw SQL вместо этого. В django вы можете легко сделать это:

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

Если это не поможет, оставьте комментарий.

    Ничего не найдено.

Добавить ответ:
Отменить.