mirror of
https://github.com/django/django.git
synced 2024-12-22 17:16:24 +00:00
Fixed #9104 -- Moved FieldDoesNotExist to core.exceptions
This commit is contained in:
parent
1aa3e09c20
commit
8958170755
@ -5,8 +5,8 @@ from itertools import chain
|
|||||||
|
|
||||||
from django.contrib.admin.utils import get_fields_from_path, NotRelationField, flatten
|
from django.contrib.admin.utils import get_fields_from_path, NotRelationField, flatten
|
||||||
from django.core import checks
|
from django.core import checks
|
||||||
|
from django.core.exceptions import FieldDoesNotExist
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.db.models.fields import FieldDoesNotExist
|
|
||||||
from django.forms.models import BaseModelForm, _get_foreign_key, BaseModelFormSet
|
from django.forms.models import BaseModelForm, _get_foreign_key, BaseModelFormSet
|
||||||
|
|
||||||
|
|
||||||
@ -53,7 +53,7 @@ class BaseModelAdminChecks(object):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
field = model._meta.get_field(field_name)
|
field = model._meta.get_field(field_name)
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
return refer_to_missing_field(field=field_name, option=label,
|
return refer_to_missing_field(field=field_name, option=label,
|
||||||
model=model, obj=cls, id='admin.E002')
|
model=model, obj=cls, id='admin.E002')
|
||||||
else:
|
else:
|
||||||
@ -168,7 +168,7 @@ class BaseModelAdminChecks(object):
|
|||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
field = model._meta.get_field(field_name)
|
field = model._meta.get_field(field_name)
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
# If we can't find a field on the model that matches, it could
|
# If we can't find a field on the model that matches, it could
|
||||||
# be an extra field on the form.
|
# be an extra field on the form.
|
||||||
return []
|
return []
|
||||||
@ -248,7 +248,7 @@ class BaseModelAdminChecks(object):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
field = model._meta.get_field(field_name)
|
field = model._meta.get_field(field_name)
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
return refer_to_missing_field(field=field_name, option=label,
|
return refer_to_missing_field(field=field_name, option=label,
|
||||||
model=model, obj=cls, id='admin.E019')
|
model=model, obj=cls, id='admin.E019')
|
||||||
else:
|
else:
|
||||||
@ -277,7 +277,7 @@ class BaseModelAdminChecks(object):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
field = model._meta.get_field(field_name)
|
field = model._meta.get_field(field_name)
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
return refer_to_missing_field(field=field_name, option=label,
|
return refer_to_missing_field(field=field_name, option=label,
|
||||||
model=model, obj=cls, id='admin.E022')
|
model=model, obj=cls, id='admin.E022')
|
||||||
else:
|
else:
|
||||||
@ -357,7 +357,7 @@ class BaseModelAdminChecks(object):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
field = model._meta.get_field(field_name)
|
field = model._meta.get_field(field_name)
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
return refer_to_missing_field(field=field_name, option=label,
|
return refer_to_missing_field(field=field_name, option=label,
|
||||||
model=model, obj=cls, id='admin.E027')
|
model=model, obj=cls, id='admin.E027')
|
||||||
else:
|
else:
|
||||||
@ -394,7 +394,7 @@ class BaseModelAdminChecks(object):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
model._meta.get_field(field_name)
|
model._meta.get_field(field_name)
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
return refer_to_missing_field(field=field_name, option=label,
|
return refer_to_missing_field(field=field_name, option=label,
|
||||||
model=model, obj=cls, id='admin.E030')
|
model=model, obj=cls, id='admin.E030')
|
||||||
else:
|
else:
|
||||||
@ -439,7 +439,7 @@ class BaseModelAdminChecks(object):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
model._meta.get_field(field_name)
|
model._meta.get_field(field_name)
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
return refer_to_missing_field(field=field_name, option=label,
|
return refer_to_missing_field(field=field_name, option=label,
|
||||||
model=model, obj=cls, id='admin.E033')
|
model=model, obj=cls, id='admin.E033')
|
||||||
else:
|
else:
|
||||||
@ -468,7 +468,7 @@ class BaseModelAdminChecks(object):
|
|||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
model._meta.get_field(field_name)
|
model._meta.get_field(field_name)
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
return [
|
return [
|
||||||
checks.Error(
|
checks.Error(
|
||||||
"The value of '%s' is not a callable, an attribute of '%s', or an attribute of '%s.%s'." % (
|
"The value of '%s' is not a callable, an attribute of '%s', or an attribute of '%s.%s'." % (
|
||||||
@ -581,7 +581,7 @@ class ModelAdminChecks(BaseModelAdminChecks):
|
|||||||
# getattr(model, item) could be an X_RelatedObjectsDescriptor
|
# getattr(model, item) could be an X_RelatedObjectsDescriptor
|
||||||
try:
|
try:
|
||||||
field = model._meta.get_field(item)
|
field = model._meta.get_field(item)
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
try:
|
try:
|
||||||
field = getattr(model, item)
|
field = getattr(model, item)
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
@ -613,7 +613,7 @@ class ModelAdminChecks(BaseModelAdminChecks):
|
|||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
model._meta.get_field(item)
|
model._meta.get_field(item)
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
return [
|
return [
|
||||||
# This is a deliberate repeat of E108; there's more than one path
|
# This is a deliberate repeat of E108; there's more than one path
|
||||||
# required to test this condition.
|
# required to test this condition.
|
||||||
@ -763,7 +763,7 @@ class ModelAdminChecks(BaseModelAdminChecks):
|
|||||||
def _check_list_editable_item(self, cls, model, field_name, label):
|
def _check_list_editable_item(self, cls, model, field_name, label):
|
||||||
try:
|
try:
|
||||||
field = model._meta.get_field_by_name(field_name)[0]
|
field = model._meta.get_field_by_name(field_name)[0]
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
return refer_to_missing_field(field=field_name, option=label,
|
return refer_to_missing_field(field=field_name, option=label,
|
||||||
model=model, obj=cls, id='admin.E121')
|
model=model, obj=cls, id='admin.E121')
|
||||||
else:
|
else:
|
||||||
@ -833,7 +833,7 @@ class ModelAdminChecks(BaseModelAdminChecks):
|
|||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
field = model._meta.get_field(cls.date_hierarchy)
|
field = model._meta.get_field(cls.date_hierarchy)
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
return refer_to_missing_field(option='date_hierarchy',
|
return refer_to_missing_field(option='date_hierarchy',
|
||||||
field=cls.date_hierarchy,
|
field=cls.date_hierarchy,
|
||||||
model=model, obj=cls, id='admin.E127')
|
model=model, obj=cls, id='admin.E127')
|
||||||
|
@ -20,12 +20,12 @@ from django.contrib.admin.templatetags.admin_urls import add_preserved_filters
|
|||||||
from django.contrib.auth import get_permission_codename
|
from django.contrib.auth import get_permission_codename
|
||||||
from django.core import checks
|
from django.core import checks
|
||||||
from django.core.exceptions import (PermissionDenied, ValidationError,
|
from django.core.exceptions import (PermissionDenied, ValidationError,
|
||||||
FieldError, ImproperlyConfigured)
|
FieldDoesNotExist, FieldError, ImproperlyConfigured)
|
||||||
from django.core.paginator import Paginator
|
from django.core.paginator import Paginator
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
from django.db import models, transaction, router
|
from django.db import models, transaction, router
|
||||||
from django.db.models.constants import LOOKUP_SEP
|
from django.db.models.constants import LOOKUP_SEP
|
||||||
from django.db.models.fields import BLANK_CHOICE_DASH, FieldDoesNotExist
|
from django.db.models.fields import BLANK_CHOICE_DASH
|
||||||
from django.db.models.fields.related import ForeignObjectRel
|
from django.db.models.fields.related import ForeignObjectRel
|
||||||
from django.db.models.sql.constants import QUERY_TERMS
|
from django.db.models.sql.constants import QUERY_TERMS
|
||||||
from django.forms.formsets import all_valid, DELETION_FIELD_NAME
|
from django.forms.formsets import all_valid, DELETION_FIELD_NAME
|
||||||
@ -1381,7 +1381,7 @@ class ModelAdmin(BaseModelAdmin):
|
|||||||
for k in initial:
|
for k in initial:
|
||||||
try:
|
try:
|
||||||
f = self.model._meta.get_field(k)
|
f = self.model._meta.get_field(k)
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
continue
|
continue
|
||||||
# We have to special-case M2Ms as a list of comma-separated PKs.
|
# We have to special-case M2Ms as a list of comma-separated PKs.
|
||||||
if isinstance(f, models.ManyToManyField):
|
if isinstance(f, models.ManyToManyField):
|
||||||
|
@ -5,6 +5,7 @@ import datetime
|
|||||||
import decimal
|
import decimal
|
||||||
|
|
||||||
from django.contrib.auth import get_permission_codename
|
from django.contrib.auth import get_permission_codename
|
||||||
|
from django.core.exceptions import FieldDoesNotExist
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.db.models.constants import LOOKUP_SEP
|
from django.db.models.constants import LOOKUP_SEP
|
||||||
from django.db.models.deletion import Collector
|
from django.db.models.deletion import Collector
|
||||||
@ -265,7 +266,7 @@ def lookup_field(name, obj, model_admin=None):
|
|||||||
opts = obj._meta
|
opts = obj._meta
|
||||||
try:
|
try:
|
||||||
f = opts.get_field(name)
|
f = opts.get_field(name)
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
# For non-field values, the value is either a method, property or
|
# For non-field values, the value is either a method, property or
|
||||||
# returned via a callable.
|
# returned via a callable.
|
||||||
if callable(name):
|
if callable(name):
|
||||||
@ -306,7 +307,7 @@ def label_for_field(name, model, model_admin=None, return_attr=False):
|
|||||||
except AttributeError:
|
except AttributeError:
|
||||||
# field is likely a ForeignObjectRel
|
# field is likely a ForeignObjectRel
|
||||||
label = field.opts.verbose_name
|
label = field.opts.verbose_name
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
if name == "__unicode__":
|
if name == "__unicode__":
|
||||||
label = force_text(model._meta.verbose_name)
|
label = force_text(model._meta.verbose_name)
|
||||||
attr = six.text_type
|
attr = six.text_type
|
||||||
@ -349,7 +350,7 @@ def help_text_for_field(name, model):
|
|||||||
help_text = ""
|
help_text = ""
|
||||||
try:
|
try:
|
||||||
field_data = model._meta.get_field_by_name(name)
|
field_data = model._meta.get_field_by_name(name)
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
field = field_data[0]
|
field = field_data[0]
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
from django.core.exceptions import ImproperlyConfigured
|
from django.core.exceptions import FieldDoesNotExist, ImproperlyConfigured
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.db.models.fields import FieldDoesNotExist
|
|
||||||
from django.forms.models import BaseModelForm, BaseModelFormSet, _get_foreign_key
|
from django.forms.models import BaseModelForm, BaseModelFormSet, _get_foreign_key
|
||||||
from django.contrib.admin.utils import get_fields_from_path, NotRelationField
|
from django.contrib.admin.utils import get_fields_from_path, NotRelationField
|
||||||
|
|
||||||
@ -42,7 +41,7 @@ class BaseValidator(object):
|
|||||||
continue
|
continue
|
||||||
try:
|
try:
|
||||||
f = model._meta.get_field(field)
|
f = model._meta.get_field(field)
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
# If we can't find a field on the model that matches, it could be an
|
# If we can't find a field on the model that matches, it could be an
|
||||||
# extra field on the form; nothing to check so move on to the next field.
|
# extra field on the form; nothing to check so move on to the next field.
|
||||||
continue
|
continue
|
||||||
@ -196,7 +195,7 @@ class BaseValidator(object):
|
|||||||
if not hasattr(model, field):
|
if not hasattr(model, field):
|
||||||
try:
|
try:
|
||||||
model._meta.get_field(field)
|
model._meta.get_field(field)
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
raise ImproperlyConfigured(
|
raise ImproperlyConfigured(
|
||||||
"%s.readonly_fields[%d], %r is not a callable or "
|
"%s.readonly_fields[%d], %r is not a callable or "
|
||||||
"an attribute of %r or found in the model %r."
|
"an attribute of %r or found in the model %r."
|
||||||
@ -250,7 +249,7 @@ class ModelAdminValidator(BaseValidator):
|
|||||||
if not hasattr(model, field):
|
if not hasattr(model, field):
|
||||||
try:
|
try:
|
||||||
model._meta.get_field(field)
|
model._meta.get_field(field)
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
raise ImproperlyConfigured(
|
raise ImproperlyConfigured(
|
||||||
"%s.list_display[%d], %r is not a callable or "
|
"%s.list_display[%d], %r is not a callable or "
|
||||||
"an attribute of %r or found in the model %r."
|
"an attribute of %r or found in the model %r."
|
||||||
@ -348,7 +347,7 @@ class ModelAdminValidator(BaseValidator):
|
|||||||
for idx, field_name in enumerate(cls.list_editable):
|
for idx, field_name in enumerate(cls.list_editable):
|
||||||
try:
|
try:
|
||||||
field = model._meta.get_field_by_name(field_name)[0]
|
field = model._meta.get_field_by_name(field_name)[0]
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
raise ImproperlyConfigured("'%s.list_editable[%d]' refers to a "
|
raise ImproperlyConfigured("'%s.list_editable[%d]' refers to a "
|
||||||
"field, '%s', not defined on %s.%s."
|
"field, '%s', not defined on %s.%s."
|
||||||
% (cls.__name__, idx, field_name, model._meta.app_label, model.__name__))
|
% (cls.__name__, idx, field_name, model._meta.app_label, model.__name__))
|
||||||
@ -429,7 +428,7 @@ def check_isdict(cls, label, obj):
|
|||||||
def get_field(cls, model, label, field):
|
def get_field(cls, model, label, field):
|
||||||
try:
|
try:
|
||||||
return model._meta.get_field(field)
|
return model._meta.get_field(field)
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
raise ImproperlyConfigured("'%s.%s' refers to field '%s' that is missing from model '%s.%s'."
|
raise ImproperlyConfigured("'%s.%s' refers to field '%s' that is missing from model '%s.%s'."
|
||||||
% (cls.__name__, label, field, model._meta.app_label, model.__name__))
|
% (cls.__name__, label, field, model._meta.app_label, model.__name__))
|
||||||
|
|
||||||
@ -437,7 +436,7 @@ def get_field(cls, model, label, field):
|
|||||||
def fetch_attr(cls, model, label, field):
|
def fetch_attr(cls, model, label, field):
|
||||||
try:
|
try:
|
||||||
return model._meta.get_field(field)
|
return model._meta.get_field(field)
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
pass
|
pass
|
||||||
try:
|
try:
|
||||||
return getattr(model, field)
|
return getattr(model, field)
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from django.core.exceptions import SuspiciousOperation, ImproperlyConfigured
|
from django.core.exceptions import FieldDoesNotExist, SuspiciousOperation, ImproperlyConfigured
|
||||||
from django.core.paginator import InvalidPage
|
from django.core.paginator import InvalidPage
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.db.models.fields import FieldDoesNotExist
|
|
||||||
from django.utils import six
|
from django.utils import six
|
||||||
from django.utils.encoding import force_text
|
from django.utils.encoding import force_text
|
||||||
from django.utils.translation import ugettext, ugettext_lazy
|
from django.utils.translation import ugettext, ugettext_lazy
|
||||||
@ -226,7 +225,7 @@ class ChangeList(object):
|
|||||||
try:
|
try:
|
||||||
field = self.lookup_opts.get_field(field_name)
|
field = self.lookup_opts.get_field(field_name)
|
||||||
return field.name
|
return field.name
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
# See whether field_name is a name of a non-field
|
# See whether field_name is a name of a non-field
|
||||||
# that allows sorting.
|
# that allows sorting.
|
||||||
if callable(field_name):
|
if callable(field_name):
|
||||||
@ -377,7 +376,7 @@ class ChangeList(object):
|
|||||||
for field_name in self.list_display:
|
for field_name in self.list_display:
|
||||||
try:
|
try:
|
||||||
field = self.lookup_opts.get_field(field_name)
|
field = self.lookup_opts.get_field(field_name)
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
if isinstance(field.rel, models.ManyToOneRel):
|
if isinstance(field.rel, models.ManyToOneRel):
|
||||||
|
@ -9,7 +9,7 @@ from django.contrib.contenttypes.forms import (
|
|||||||
BaseGenericInlineFormSet, generic_inlineformset_factory
|
BaseGenericInlineFormSet, generic_inlineformset_factory
|
||||||
)
|
)
|
||||||
from django.core import checks
|
from django.core import checks
|
||||||
from django.db.models.fields import FieldDoesNotExist
|
from django.core.exceptions import FieldDoesNotExist
|
||||||
from django.forms import ALL_FIELDS
|
from django.forms import ALL_FIELDS
|
||||||
from django.forms.models import modelform_defines_fields
|
from django.forms.models import modelform_defines_fields
|
||||||
|
|
||||||
|
@ -3,10 +3,10 @@ from __future__ import unicode_literals
|
|||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
|
|
||||||
from django.core import checks
|
from django.core import checks
|
||||||
from django.core.exceptions import ObjectDoesNotExist
|
from django.core.exceptions import FieldDoesNotExist, ObjectDoesNotExist
|
||||||
from django.db import connection
|
from django.db import connection
|
||||||
from django.db import models, router, transaction, DEFAULT_DB_ALIAS
|
from django.db import models, router, transaction, DEFAULT_DB_ALIAS
|
||||||
from django.db.models import signals, FieldDoesNotExist, DO_NOTHING
|
from django.db.models import signals, DO_NOTHING
|
||||||
from django.db.models.base import ModelBase
|
from django.db.models.base import ModelBase
|
||||||
from django.db.models.fields.related import ForeignObject, ForeignObjectRel
|
from django.db.models.fields.related import ForeignObject, ForeignObjectRel
|
||||||
from django.db.models.query_utils import PathInfo
|
from django.db.models.query_utils import PathInfo
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
from django.core.exceptions import FieldDoesNotExist
|
||||||
from django.db.models.constants import LOOKUP_SEP
|
from django.db.models.constants import LOOKUP_SEP
|
||||||
from django.db.models.fields import FieldDoesNotExist
|
|
||||||
from django.db.models.lookups import Lookup
|
from django.db.models.lookups import Lookup
|
||||||
from django.db.models.expressions import ExpressionNode, Col
|
from django.db.models.expressions import ExpressionNode, Col
|
||||||
from django.utils import six
|
from django.utils import six
|
||||||
|
@ -4,8 +4,8 @@ from django.apps import apps
|
|||||||
from django.http import Http404
|
from django.http import Http404
|
||||||
from django.contrib.gis.db.models.fields import GeometryField
|
from django.contrib.gis.db.models.fields import GeometryField
|
||||||
from django.contrib.gis.shortcuts import render_to_kml, render_to_kmz
|
from django.contrib.gis.shortcuts import render_to_kml, render_to_kmz
|
||||||
|
from django.core.exceptions import FieldDoesNotExist
|
||||||
from django.db import connections, DEFAULT_DB_ALIAS
|
from django.db import connections, DEFAULT_DB_ALIAS
|
||||||
from django.db.models.fields import FieldDoesNotExist
|
|
||||||
|
|
||||||
|
|
||||||
def kml(request, label, model, field_name=None, compress=False, using=DEFAULT_DB_ALIAS):
|
def kml(request, label, model, field_name=None, compress=False, using=DEFAULT_DB_ALIAS):
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
"""
|
"""
|
||||||
import sys
|
import sys
|
||||||
from decimal import Decimal, InvalidOperation as DecimalInvalidOperation
|
from decimal import Decimal, InvalidOperation as DecimalInvalidOperation
|
||||||
from django.core.exceptions import ObjectDoesNotExist
|
from django.core.exceptions import FieldDoesNotExist, ObjectDoesNotExist
|
||||||
from django.db import connections, router
|
from django.db import connections, router
|
||||||
from django.contrib.gis.db.models import GeometryField
|
from django.contrib.gis.db.models import GeometryField
|
||||||
from django.contrib.gis.gdal import (CoordTransform, DataSource,
|
from django.contrib.gis.gdal import (CoordTransform, DataSource,
|
||||||
@ -189,7 +189,7 @@ class LayerMapping(object):
|
|||||||
# for the given field name in the mapping.
|
# for the given field name in the mapping.
|
||||||
try:
|
try:
|
||||||
model_field = self.model._meta.get_field(field_name)
|
model_field = self.model._meta.get_field(field_name)
|
||||||
except models.fields.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
raise LayerMapError('Given mapping field "%s" not in given Model fields.' % field_name)
|
raise LayerMapError('Given mapping field "%s" not in given Model fields.' % field_name)
|
||||||
|
|
||||||
# Getting the string name for the Django field class (e.g., 'PointField').
|
# Getting the string name for the Django field class (e.g., 'PointField').
|
||||||
@ -231,7 +231,7 @@ class LayerMapping(object):
|
|||||||
idx = check_ogr_fld(ogr_field)
|
idx = check_ogr_fld(ogr_field)
|
||||||
try:
|
try:
|
||||||
rel_model._meta.get_field(rel_name)
|
rel_model._meta.get_field(rel_name)
|
||||||
except models.fields.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
raise LayerMapError('ForeignKey mapping field "%s" not in %s fields.' %
|
raise LayerMapError('ForeignKey mapping field "%s" not in %s fields.' %
|
||||||
(rel_name, rel_model.__class__.__name__))
|
(rel_name, rel_model.__class__.__name__))
|
||||||
fields_val = rel_model
|
fields_val = rel_model
|
||||||
|
@ -3,8 +3,8 @@ from __future__ import unicode_literals
|
|||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.core import checks
|
from django.core import checks
|
||||||
|
from django.core.exceptions import FieldDoesNotExist
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.db.models.fields import FieldDoesNotExist
|
|
||||||
|
|
||||||
|
|
||||||
class CurrentSiteManager(models.Manager):
|
class CurrentSiteManager(models.Manager):
|
||||||
|
@ -5,6 +5,11 @@ from django.utils import six
|
|||||||
from django.utils.encoding import force_text
|
from django.utils.encoding import force_text
|
||||||
|
|
||||||
|
|
||||||
|
class FieldDoesNotExist(Exception):
|
||||||
|
"""The requested model field does not exist"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
class DjangoRuntimeWarning(RuntimeWarning):
|
class DjangoRuntimeWarning(RuntimeWarning):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -9,14 +9,14 @@ from django.apps import apps
|
|||||||
from django.apps.config import MODELS_MODULE_NAME
|
from django.apps.config import MODELS_MODULE_NAME
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.core import checks
|
from django.core import checks
|
||||||
from django.core.exceptions import (ObjectDoesNotExist,
|
from django.core.exceptions import (FieldDoesNotExist, ObjectDoesNotExist,
|
||||||
MultipleObjectsReturned, FieldError, ValidationError, NON_FIELD_ERRORS)
|
MultipleObjectsReturned, FieldError, ValidationError, NON_FIELD_ERRORS)
|
||||||
from django.db import (router, connections, transaction, DatabaseError,
|
from django.db import (router, connections, transaction, DatabaseError,
|
||||||
DEFAULT_DB_ALIAS, DJANGO_VERSION_PICKLE_KEY)
|
DEFAULT_DB_ALIAS, DJANGO_VERSION_PICKLE_KEY)
|
||||||
from django.db.models import signals
|
from django.db.models import signals
|
||||||
from django.db.models.constants import LOOKUP_SEP
|
from django.db.models.constants import LOOKUP_SEP
|
||||||
from django.db.models.deletion import Collector
|
from django.db.models.deletion import Collector
|
||||||
from django.db.models.fields import AutoField, FieldDoesNotExist
|
from django.db.models.fields import AutoField
|
||||||
from django.db.models.fields.related import (ForeignObjectRel, ManyToOneRel,
|
from django.db.models.fields.related import (ForeignObjectRel, ManyToOneRel,
|
||||||
OneToOneField, add_lazy_relation)
|
OneToOneField, add_lazy_relation)
|
||||||
from django.db.models.manager import ensure_default_manager
|
from django.db.models.manager import ensure_default_manager
|
||||||
@ -1443,7 +1443,7 @@ class Model(six.with_metaclass(ModelBase)):
|
|||||||
try:
|
try:
|
||||||
field = cls._meta.get_field(field_name,
|
field = cls._meta.get_field(field_name,
|
||||||
many_to_many=True)
|
many_to_many=True)
|
||||||
except models.FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
errors.append(
|
errors.append(
|
||||||
checks.Error(
|
checks.Error(
|
||||||
"'%s' refers to the non-existent field '%s'." % (option, field_name),
|
"'%s' refers to the non-existent field '%s'." % (option, field_name),
|
||||||
@ -1485,8 +1485,6 @@ class Model(six.with_metaclass(ModelBase)):
|
|||||||
""" Check "ordering" option -- is it a list of strings and do all fields
|
""" Check "ordering" option -- is it a list of strings and do all fields
|
||||||
exist? """
|
exist? """
|
||||||
|
|
||||||
from django.db.models import FieldDoesNotExist
|
|
||||||
|
|
||||||
if not cls._meta.ordering:
|
if not cls._meta.ordering:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
@ -31,6 +31,9 @@ from django.utils.ipv6 import clean_ipv6_address
|
|||||||
from django.utils import six
|
from django.utils import six
|
||||||
from django.utils.itercompat import is_iterable
|
from django.utils.itercompat import is_iterable
|
||||||
|
|
||||||
|
# imported for backwards compatibility
|
||||||
|
from django.core.exceptions import FieldDoesNotExist # NOQA
|
||||||
|
|
||||||
# Avoid "TypeError: Item in ``from list'' not a string" -- unicode_literals
|
# Avoid "TypeError: Item in ``from list'' not a string" -- unicode_literals
|
||||||
# makes these strings unicode
|
# makes these strings unicode
|
||||||
__all__ = [str(x) for x in (
|
__all__ = [str(x) for x in (
|
||||||
@ -61,10 +64,6 @@ def _load_field(app_label, model_name, field_name):
|
|||||||
return apps.get_model(app_label, model_name)._meta.get_field_by_name(field_name)[0]
|
return apps.get_model(app_label, model_name)._meta.get_field_by_name(field_name)[0]
|
||||||
|
|
||||||
|
|
||||||
class FieldDoesNotExist(Exception):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
# A guide to Field parameters:
|
# A guide to Field parameters:
|
||||||
#
|
#
|
||||||
# * name: The name of the field specified in the model.
|
# * name: The name of the field specified in the model.
|
||||||
|
@ -5,13 +5,13 @@ import warnings
|
|||||||
|
|
||||||
from django.apps import apps
|
from django.apps import apps
|
||||||
from django.core import checks
|
from django.core import checks
|
||||||
|
from django.core.exceptions import FieldDoesNotExist
|
||||||
from django.db import connection, connections, router, transaction
|
from django.db import connection, connections, router, transaction
|
||||||
from django.db.backends import utils
|
from django.db.backends import utils
|
||||||
from django.db.models import signals, Q
|
from django.db.models import signals, Q
|
||||||
from django.db.models.deletion import SET_NULL, SET_DEFAULT, CASCADE
|
from django.db.models.deletion import SET_NULL, SET_DEFAULT, CASCADE
|
||||||
from django.db.models.fields import (AutoField, Field, IntegerField,
|
from django.db.models.fields import (AutoField, Field, IntegerField,
|
||||||
PositiveIntegerField, PositiveSmallIntegerField, FieldDoesNotExist,
|
PositiveIntegerField, PositiveSmallIntegerField, BLANK_CHOICE_DASH)
|
||||||
BLANK_CHOICE_DASH)
|
|
||||||
from django.db.models.lookups import IsNull
|
from django.db.models.lookups import IsNull
|
||||||
from django.db.models.query import QuerySet
|
from django.db.models.query import QuerySet
|
||||||
from django.db.models.query_utils import PathInfo
|
from django.db.models.query_utils import PathInfo
|
||||||
|
@ -2,9 +2,9 @@ import copy
|
|||||||
from importlib import import_module
|
from importlib import import_module
|
||||||
import inspect
|
import inspect
|
||||||
|
|
||||||
|
from django.core.exceptions import FieldDoesNotExist
|
||||||
from django.db import router
|
from django.db import router
|
||||||
from django.db.models.query import QuerySet
|
from django.db.models.query import QuerySet
|
||||||
from django.db.models.fields import FieldDoesNotExist
|
|
||||||
from django.utils import six
|
from django.utils import six
|
||||||
from django.utils.encoding import python_2_unicode_compatible
|
from django.utils.encoding import python_2_unicode_compatible
|
||||||
|
|
||||||
|
@ -5,8 +5,9 @@ from collections import OrderedDict
|
|||||||
|
|
||||||
from django.apps import apps
|
from django.apps import apps
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from django.core.exceptions import FieldDoesNotExist
|
||||||
from django.db.models.fields.related import ManyToManyRel
|
from django.db.models.fields.related import ManyToManyRel
|
||||||
from django.db.models.fields import AutoField, FieldDoesNotExist
|
from django.db.models.fields import AutoField
|
||||||
from django.db.models.fields.proxy import OrderWrt
|
from django.db.models.fields.proxy import OrderWrt
|
||||||
from django.utils import six
|
from django.utils import six
|
||||||
from django.utils.encoding import force_text, smart_text, python_2_unicode_compatible
|
from django.utils.encoding import force_text, smart_text, python_2_unicode_compatible
|
||||||
|
@ -10,6 +10,7 @@ from __future__ import unicode_literals
|
|||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
from django.apps import apps
|
from django.apps import apps
|
||||||
|
from django.core.exceptions import FieldDoesNotExist
|
||||||
from django.db.backends import utils
|
from django.db.backends import utils
|
||||||
from django.db.models.constants import LOOKUP_SEP
|
from django.db.models.constants import LOOKUP_SEP
|
||||||
from django.utils import six
|
from django.utils import six
|
||||||
@ -99,7 +100,6 @@ class DeferredAttribute(object):
|
|||||||
Retrieves and caches the value from the datastore on the first lookup.
|
Retrieves and caches the value from the datastore on the first lookup.
|
||||||
Returns the cached value.
|
Returns the cached value.
|
||||||
"""
|
"""
|
||||||
from django.db.models.fields import FieldDoesNotExist
|
|
||||||
non_deferred_model = instance._meta.proxy_for_model
|
non_deferred_model = instance._meta.proxy_for_model
|
||||||
opts = non_deferred_model._meta
|
opts = non_deferred_model._meta
|
||||||
|
|
||||||
|
@ -13,12 +13,11 @@ from collections import Mapping, OrderedDict
|
|||||||
import copy
|
import copy
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
from django.core.exceptions import FieldError
|
from django.core.exceptions import FieldDoesNotExist, FieldError
|
||||||
from django.db import connections, DEFAULT_DB_ALIAS
|
from django.db import connections, DEFAULT_DB_ALIAS
|
||||||
from django.db.models.aggregates import Count
|
from django.db.models.aggregates import Count
|
||||||
from django.db.models.constants import LOOKUP_SEP
|
from django.db.models.constants import LOOKUP_SEP
|
||||||
from django.db.models.expressions import Col, Ref
|
from django.db.models.expressions import Col, Ref
|
||||||
from django.db.models.fields import FieldDoesNotExist
|
|
||||||
from django.db.models.query_utils import PathInfo, Q, refs_aggregate
|
from django.db.models.query_utils import PathInfo, Q, refs_aggregate
|
||||||
from django.db.models.sql.constants import (QUERY_TERMS, ORDER_DIR, SINGLE,
|
from django.db.models.sql.constants import (QUERY_TERMS, ORDER_DIR, SINGLE,
|
||||||
ORDER_PATTERN, SelectInfo, INNER, LOUTER)
|
ORDER_PATTERN, SelectInfo, INNER, LOUTER)
|
||||||
|
@ -33,6 +33,19 @@ ObjectDoesNotExist and DoesNotExist
|
|||||||
See :meth:`~django.db.models.query.QuerySet.get()` for further information
|
See :meth:`~django.db.models.query.QuerySet.get()` for further information
|
||||||
on :exc:`ObjectDoesNotExist` and :exc:`DoesNotExist`.
|
on :exc:`ObjectDoesNotExist` and :exc:`DoesNotExist`.
|
||||||
|
|
||||||
|
FieldDoesNotExist
|
||||||
|
-----------------
|
||||||
|
.. exception:: FieldDoesNotExist
|
||||||
|
|
||||||
|
The ``FieldDoesNotExist`` exception is raised by a model's
|
||||||
|
``_meta.get_field()`` method when the requested field does not exist on the
|
||||||
|
model or on the model's parents.
|
||||||
|
|
||||||
|
.. versionchanged:: 1.8
|
||||||
|
|
||||||
|
This exception was previously defined only in
|
||||||
|
``django.db.models.fields`` and wasn't part of the public API.
|
||||||
|
|
||||||
MultipleObjectsReturned
|
MultipleObjectsReturned
|
||||||
-----------------------
|
-----------------------
|
||||||
.. exception:: MultipleObjectsReturned
|
.. exception:: MultipleObjectsReturned
|
||||||
|
@ -2,12 +2,11 @@ from __future__ import unicode_literals
|
|||||||
import datetime
|
import datetime
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
|
|
||||||
from django.core.exceptions import FieldError
|
from django.core.exceptions import FieldDoesNotExist, FieldError
|
||||||
from django.db.models import (
|
from django.db.models import (
|
||||||
Sum, Count,
|
Sum, Count,
|
||||||
F, Value, Func,
|
F, Value, Func,
|
||||||
IntegerField, BooleanField, CharField)
|
IntegerField, BooleanField, CharField)
|
||||||
from django.db.models.fields import FieldDoesNotExist
|
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
from django.utils import six
|
from django.utils import six
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
from django import test
|
from django import test
|
||||||
|
|
||||||
from django.db.models.fields import related, CharField, Field, FieldDoesNotExist
|
|
||||||
from django.contrib.contenttypes.fields import GenericRelation
|
from django.contrib.contenttypes.fields import GenericRelation
|
||||||
|
from django.core.exceptions import FieldDoesNotExist
|
||||||
|
from django.db.models.fields import related, CharField, Field
|
||||||
|
|
||||||
from .models import (
|
from .models import (
|
||||||
AbstractPerson, BasePerson, Person, Relating, Relation
|
AbstractPerson, BasePerson, Person, Relating, Relation
|
||||||
|
Loading…
Reference in New Issue
Block a user