class Book(models.Model):
author = models.ForeignKey(Person)
}}}
{{{
class Person(models.Model):
pass
class Book(models.Model):
author = models.ForeignKey(Person)
class Reviewer(models.Model):
pass
class Review(models.Model):
book = models.ForeignKey(Book)
}}}
{{{
class Book(models.Model):
pass
class Reviewer(models.Model):
pass
class Review(models.Model):
reviewer = models.ForeignKey(Reviewer)
book = models.ForeignKey(Book)
}}}
{{{
$ python manage.py squashmigrations test_app 0003
$ python manage.py migrate test_app
Applying test_app.0001_squashed_0003_auto_20160607_1120...Traceback (most
recent call last):
File "manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "/home/sergey/dev/django/django/core/management/__init__.py", line
354, in execute_from_command_line
utility.execute()
File "/home/sergey/dev/django/django/core/management/__init__.py", line
346, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/sergey/dev/django/django/core/management/base.py", line 394,
in run_from_argv
self.execute(*args, **cmd_options)
File "/home/sergey/dev/django/django/core/management/base.py", line 445,
in execute
output = self.handle(*args, **options)
File
"/home/sergey/dev/django/django/core/management/commands/migrate.py", line
222, in handle
executor.migrate(targets, plan, fake=fake, fake_initial=fake_initial)
File "/home/sergey/dev/django/django/db/migrations/executor.py", line
110, in migrate
self.apply_migration(states[migration], migration, fake=fake,
fake_initial=fake_initial)
File "/home/sergey/dev/django/django/db/migrations/executor.py", line
148, in apply_migration
state = migration.apply(state, schema_editor)
File "/home/sergey/dev/django/django/db/migrations/migration.py", line
115, in apply
operation.database_forwards(self.app_label, schema_editor, old_state,
project_state)
File
"/home/sergey/dev/django/django/db/migrations/operations/models.py", line
59, in database_forwards
schema_editor.create_model(model)
File "/home/sergey/dev/django/django/db/backends/base/schema.py", line
236, in create_model
definition, extra_params = self.column_sql(model, field)
File "/home/sergey/dev/django/django/db/backends/base/schema.py", line
135, in column_sql
db_params = field.db_parameters(connection=self.connection)
File "/home/sergey/dev/django/django/db/models/fields/related.py", line
2010, in db_parameters
return {"type": self.db_type(connection), "check": []}
File "/home/sergey/dev/django/django/db/models/fields/related.py", line
2001, in db_type
rel_field = self.related_field
File "/home/sergey/dev/django/django/db/models/fields/related.py", line
1904, in related_field
return self.foreign_related_fields[0]
File "/home/sergey/dev/django/django/db/models/fields/related.py", line
1638, in foreign_related_fields
return tuple(rhs_field for lhs_field, rhs_field in self.related_fields
if rhs_field)
File "/home/sergey/dev/django/django/db/models/fields/related.py", line
1625, in related_fields
self._related_fields = self.resolve_related_fields()
File "/home/sergey/dev/django/django/db/models/fields/related.py", line
1610, in resolve_related_fields
raise ValueError('Related model %r cannot be resolved' % self.rel.to)
ValueError: Related model u'test_app.Person' cannot be resolved
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/26720>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* status: new => assigned
* needs_better_patch: => 0
* owner: nobody => sir-sigurd
* needs_tests: => 0
* needs_docs: => 0
--
Ticket URL: <https://code.djangoproject.com/ticket/26720#comment:1>
* has_patch: 0 => 1
Comment:
[https://github.com/django/django/pull/6741 PR]
--
Ticket URL: <https://code.djangoproject.com/ticket/26720#comment:2>
* stage: Unreviewed => Accepted
--
Ticket URL: <https://code.djangoproject.com/ticket/26720#comment:3>
* needs_better_patch: 0 => 1
--
Ticket URL: <https://code.djangoproject.com/ticket/26720#comment:4>
* needs_better_patch: 1 => 0
* version: 1.8 => master
Comment:
New patch [https://github.com/django/django/pull/7999 PR].
--
Ticket URL: <https://code.djangoproject.com/ticket/26720#comment:5>
* owner: Sergey Fedoseev => (none)
* status: assigned => new
--
Ticket URL: <https://code.djangoproject.com/ticket/26720#comment:6>
* needs_better_patch: 0 => 1
--
Ticket URL: <https://code.djangoproject.com/ticket/26720#comment:7>
* owner: (none) => Tim Graham <timograham@…>
* status: new => closed
* resolution: => fixed
Comment:
In [changeset:"ad82900ad94ed4bbad050b9993373dafbe66b610" ad82900a]:
{{{
#!CommitTicketReference repository=""
revision="ad82900ad94ed4bbad050b9993373dafbe66b610"
Fixed #26720 -- Prevented invalid CreateModel optimizations of related
fields.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/26720#comment:8>