def test_update(self): iq = InsertQuery(Blog, title='a').execute() uq = UpdateQuery(Blog, title='A').where(id=1) self.assertEqual(uq.sql(), ('UPDATE blog SET title=? WHERE id = ?', ['A', 1])) self.assertEqual(uq.execute(), 1) iq2 = InsertQuery(Blog, title='b').execute() uq = UpdateQuery(Blog, title='B').where(id=2) self.assertEqual(uq.sql(), ('UPDATE blog SET title=? WHERE id = ?', ['B', 2])) self.assertEqual(uq.execute(), 1) sq = SelectQuery(Blog).order_by('id') self.assertEqual([x.title for x in sq], ['A', 'B'])
def test_update_with_q(self): uq = UpdateQuery(Blog, title='A').where(Q(id=1)) self.assertEqual(uq.sql(), ('UPDATE blog SET title=? WHERE id = ?', ['A', 1])) uq = UpdateQuery(Blog, title='A').where(Q(id=1) | Q(id=3)) self.assertEqual( uq.sql(), ('UPDATE blog SET title=? WHERE (id = ? OR id = ?)', ['A', 1, 3]))
def __set__(self, instance, value): mtv = instance._meta.db_table miv = instance.get_id() if isinstance(value, SelectQuery) and value.model_class == self.model_class: uq = UpdateQuery(self.model_class, { self.model_type_field: mtv, self.model_id_field: miv, }).where(value._where).execute() elif all(map(lambda i: isinstance(i, self.model_class), value)): for obj in value: setattr(obj, self.model_type_field.name, mtv) setattr(obj, self.model_id_field.name, miv) obj.save() else: raise ValueError('ReverseGFK field unable to handle "%s"' % value)
def test_update(self): iq = InsertQuery(Blog, title="a").execute() uq = UpdateQuery(Blog, title="A").where(id=1) self.assertEqual(uq.sql(), ("UPDATE blog SET title=? WHERE id = ?", ["A", 1])) self.assertEqual(uq.execute(), 1) iq2 = InsertQuery(Blog, title="b").execute() uq = UpdateQuery(Blog, title="B").where(id=2) self.assertEqual(uq.sql(), ("UPDATE blog SET title=? WHERE id = ?", ["B", 2])) self.assertEqual(uq.execute(), 1) sq = SelectQuery(Blog).order_by("id") self.assertEqual([x.title for x in sq], ["A", "B"])
def test_update_with_q(self): uq = UpdateQuery(Blog, title="A").where(Q(id=1)) self.assertEqual(uq.sql(), ("UPDATE blog SET title=? WHERE id = ?", ["A", 1])) uq = UpdateQuery(Blog, title="A").where(Q(id=1) | Q(id=3)) self.assertEqual(uq.sql(), ("UPDATE blog SET title=? WHERE (id = ? OR id = ?)", ["A", 1, 3]))
def __init__(self, *args, **kwargs): BaseUpdateQuery.__init__(self, *args, **kwargs) gen.Future.__init__(self) self._future = None
def test_update_with_q(self): uq = UpdateQuery(Blog, title='A').where(Q(id=1)) self.assertEqual(uq.sql(), ('UPDATE blog SET title=? WHERE id = ?', ['A', 1])) uq = UpdateQuery(Blog, title='A').where(Q(id=1) | Q(id=3)) self.assertEqual(uq.sql(), ('UPDATE blog SET title=? WHERE (id = ? OR id = ?)', ['A', 1, 3]))