1
0
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:
Alex Gaynor 2010-06-09 19:28:20 +00:00
parent fe2bd63e37
commit 7ce89032b6
2 changed files with 20 additions and 0 deletions

View File

@ -45,6 +45,14 @@ class SQLCompiler(object):
filters = self.get_filters(self.query.where)
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):
try:
self.build_query()[0]
@ -62,4 +70,9 @@ class SQLInsertCompiler(SQLCompiler):
])
if self.query.model._meta.pk.column in values:
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)
class SQLUpdateCompiler(SQLCompiler):
pass

View File

@ -9,6 +9,10 @@ class MongoTestCase(TestCase):
self.assertTrue(b.pk is not None)
self.assertEqual(b.name, "Bruce Springsteen")
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):
l = Artist.objects.create(name="Lady Gaga", good=True)
@ -18,3 +22,6 @@ class MongoTestCase(TestCase):
l.good = False
l.save()
self.assertEqual(l.pk, pk)
l = Artist.objects.get(pk=pk)
self.assertTrue(not l.good)