mirror of
https://github.com/django/django.git
synced 2025-07-04 09:49:12 +00:00
[soc2010/query-refactor] Implement querying, thereby providing that update wasn't working (not fixed yet).
git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2010/query-refactor@13341 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
fe2bd63e37
commit
7ce89032b6
@ -45,6 +45,14 @@ class SQLCompiler(object):
|
|||||||
filters = self.get_filters(self.query.where)
|
filters = self.get_filters(self.query.where)
|
||||||
return self.connection.db[self.query.model._meta.db_table].find(filters)
|
return self.connection.db[self.query.model._meta.db_table].find(filters)
|
||||||
|
|
||||||
|
def results_iter(self):
|
||||||
|
query = self.build_query()
|
||||||
|
for row in query:
|
||||||
|
yield tuple(
|
||||||
|
row[f.column if f is not self.query.model._meta.pk else "_id"]
|
||||||
|
for f in self.query.model._meta.fields
|
||||||
|
)
|
||||||
|
|
||||||
def has_results(self):
|
def has_results(self):
|
||||||
try:
|
try:
|
||||||
self.build_query()[0]
|
self.build_query()[0]
|
||||||
@ -62,4 +70,9 @@ class SQLInsertCompiler(SQLCompiler):
|
|||||||
])
|
])
|
||||||
if self.query.model._meta.pk.column in values:
|
if self.query.model._meta.pk.column in values:
|
||||||
values["_id"] = values.pop(self.query.model._meta.pk.column)
|
values["_id"] = values.pop(self.query.model._meta.pk.column)
|
||||||
|
if "_id" in values and not values["_id"]:
|
||||||
|
del values["_id"]
|
||||||
return self.connection.db[self.query.model._meta.db_table].insert(values)
|
return self.connection.db[self.query.model._meta.db_table].insert(values)
|
||||||
|
|
||||||
|
class SQLUpdateCompiler(SQLCompiler):
|
||||||
|
pass
|
||||||
|
@ -9,6 +9,10 @@ class MongoTestCase(TestCase):
|
|||||||
self.assertTrue(b.pk is not None)
|
self.assertTrue(b.pk is not None)
|
||||||
self.assertEqual(b.name, "Bruce Springsteen")
|
self.assertEqual(b.name, "Bruce Springsteen")
|
||||||
self.assertTrue(b.good)
|
self.assertTrue(b.good)
|
||||||
|
b2 = Artist.objects.get(pk=b.pk)
|
||||||
|
self.assertEqual(b.pk, b2.pk)
|
||||||
|
self.assertEqual(b.name, b2.name)
|
||||||
|
self.assertEqual(b.good, b2.good)
|
||||||
|
|
||||||
def test_update(self):
|
def test_update(self):
|
||||||
l = Artist.objects.create(name="Lady Gaga", good=True)
|
l = Artist.objects.create(name="Lady Gaga", good=True)
|
||||||
@ -18,3 +22,6 @@ class MongoTestCase(TestCase):
|
|||||||
l.good = False
|
l.good = False
|
||||||
l.save()
|
l.save()
|
||||||
self.assertEqual(l.pk, pk)
|
self.assertEqual(l.pk, pk)
|
||||||
|
|
||||||
|
l = Artist.objects.get(pk=pk)
|
||||||
|
self.assertTrue(not l.good)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user