1
0
mirror of https://github.com/django/django.git synced 2025-07-04 17:59:13 +00:00

[boulder-oracle-sprint] added logic to load a custom QuerySet class from the database backend, if defined. Also added a skeletal Oracle QuerySet.

git-svn-id: http://code.djangoproject.com/svn/django/branches/boulder-oracle-sprint@4000 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Jacob Kaplan-Moss 2006-11-04 23:30:27 +00:00
parent 3e1197f82e
commit b93cd82297
2 changed files with 20 additions and 1 deletions

View File

@ -0,0 +1,9 @@
def get_query_set_class(DefaultQuerySet):
"""
Create a custom QuerySet class for Oracle.
"""
class OracleQuerySet(DefaultQuerySet):
pass
return OracleQuerySet

View File

@ -1,3 +1,4 @@
from django import db
from django.db import backend, connection, transaction
from django.db.models.fields import DateField, FieldDoesNotExist
from django.db.models import signals
@ -74,7 +75,7 @@ def quote_only_if_word(word):
else:
return backend.quote_name(word)
class QuerySet(object):
class _QuerySet(object):
"Represents a lazy database lookup for a set of objects"
def __init__(self, model=None):
self.model = model
@ -556,6 +557,15 @@ class QuerySet(object):
full_query = None
return select, " ".join(sql), params, full_query
# Check to see if the DB backend would like to define its own QuerySet class
# and otherwise use the default.
backend_query_module = db.get_query_module()
if hasattr(backend_query_module, "get_query_set_class"):
QuerySet = db.get_query_module().get_query_set_class(_QuerySet)
else:
QuerySet = _QuerySet
class ValuesQuerySet(QuerySet):
def iterator(self):
# select_related and select aren't supported in values().