Commit cb906e15 authored by Russell Keith-Magee's avatar Russell Keith-Magee
Browse files

Fixed #13366 -- Corrected the field __setstate__ method to avoid a race...

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
parent 424be523
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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

Empty file added.

+7 −0
Original line number Diff line number Diff line
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)
+9 −0
Original line number Diff line number Diff line
@@ -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