Fixed #13366 -- Corrected the field __setstate__ method to avoid a race condition when initially importing models. Thanks to Brett Hoerner for the report.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@13005 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
424be52372
commit
cb906e1593
|
@ -143,7 +143,10 @@ class Field(object):
|
|||
self.__dict__.update(data)
|
||||
|
||||
# Restore the default
|
||||
self.default = self.model._meta.get_field_by_name(self.name)[0].default
|
||||
try:
|
||||
self.default = self.model._meta.get_field(self.name).default
|
||||
except FieldDoesNotExist:
|
||||
self.default = NOT_PROVIDED
|
||||
|
||||
def to_python(self, value):
|
||||
"""
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
from django.contrib.comments.models import Comment
|
||||
from django.db import models
|
||||
|
||||
# Regression for #13368. This is an example of a model
|
||||
# that imports a class that has an abstract base class.
|
||||
class CommentScore(models.Model):
|
||||
comment = models.OneToOneField(Comment, primary_key=True)
|
|
@ -987,6 +987,15 @@ class ManageValidate(AdminScriptTestCase):
|
|||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, '0 errors found')
|
||||
|
||||
def test_app_with_import(self):
|
||||
"manage.py validate does not raise errors when an app imports a base class that itself has an abstract base"
|
||||
self.write_settings('settings.py',
|
||||
apps=['admin_scripts.app_with_import', 'django.contrib.comments'],
|
||||
sdict={'DEBUG': True})
|
||||
args = ['validate']
|
||||
out, err = self.run_manage(args)
|
||||
self.assertNoOutput(err)
|
||||
self.assertOutput(out, '0 errors found')
|
||||
|
||||
##########################################################################
|
||||
# COMMAND PROCESSING TESTS
|
||||
|
|
Loading…
Reference in New Issue