Преобразование 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'
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))Если это не поможет, оставьте комментарий.
Comments