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:
parent
3e1197f82e
commit
b93cd82297
@ -0,0 +1,9 @@
|
|||||||
|
def get_query_set_class(DefaultQuerySet):
|
||||||
|
"""
|
||||||
|
Create a custom QuerySet class for Oracle.
|
||||||
|
"""
|
||||||
|
|
||||||
|
class OracleQuerySet(DefaultQuerySet):
|
||||||
|
pass
|
||||||
|
|
||||||
|
return OracleQuerySet
|
@ -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().
|
||||||
|
Loading…
x
Reference in New Issue
Block a user