1
0
mirror of https://github.com/django/django.git synced 2025-07-05 10:19:20 +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 import backend, connection, transaction
from django.db.models.fields import DateField, FieldDoesNotExist from django.db.models.fields import DateField, FieldDoesNotExist
from django.db.models import signals from django.db.models import signals
@ -74,7 +75,7 @@ def quote_only_if_word(word):
else: else:
return backend.quote_name(word) return backend.quote_name(word)
class QuerySet(object): class _QuerySet(object):
"Represents a lazy database lookup for a set of objects" "Represents a lazy database lookup for a set of objects"
def __init__(self, model=None): def __init__(self, model=None):
self.model = model self.model = model
@ -556,6 +557,15 @@ class QuerySet(object):
full_query = None full_query = None
return select, " ".join(sql), params, full_query 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): class ValuesQuerySet(QuerySet):
def iterator(self): def iterator(self):
# select_related and select aren't supported in values(). # select_related and select aren't supported in values().