Hello,
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
-- I have created a new model called Settings, which has a OneToOneField(User, primary_key=True) field. After the automatically created migrations.CreateModel() invocation I added a RunPython line that runs this function:
def create_user_settings(apps, schema_editor):
User = get_user_model()
Settings = apps.get_model('accounts', 'Settings')
for user in User.objects.all():
Settings.objects.get_or_create(user=user) # This is line 13
When running this migration, I get the following error:
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/home/polesz/Projects/dem/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
utility.execute()
File "/home/polesz/Projects/dem/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 330, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/polesz/Projects/dem/venv/lib/python2.7/site-packages/django/core/management/base.py", line 390, in run_from_argv
self.execute(*args, **cmd_options)
File "/home/polesz/Projects/dem/venv/lib/python2.7/site-packages/django/core/management/base.py", line 441, in execute
output = self.handle(*args, **options)
File "/home/polesz/Projects/dem/venv/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 221, in handle
executor.migrate(targets, plan, fake=fake, fake_initial=fake_initial)
File "/home/polesz/Projects/dem/venv/lib/python2.7/site-packages/django/db/migrations/executor.py", line 110, in migrate
self.apply_migration(states[migration], migration, fake=fake, fake_initial=fake_initial)
File "/home/polesz/Projects/dem/venv/lib/python2.7/site-packages/django/db/migrations/executor.py", line 147, in apply_migration
state = migration.apply(state, schema_editor)
File "/home/polesz/Projects/dem/venv/lib/python2.7/site-packages/django/db/migrations/migration.py", line 115, in apply
operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
File "/home/polesz/Projects/dem/venv/lib/python2.7/site-packages/django/db/migrations/operations/special.py", line 183, in database_forwards
self.code(from_state.apps, schema_editor)
File "/home/polesz/Projects/dem/accounts/migrations/0003_settings.py", line 13, in create_user_settings
Settings.objects.get_or_create(user=user)
File "/home/polesz/Projects/dem/venv/lib/python2.7/site-packages/django/db/models/manager.py", line 127, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/polesz/Projects/dem/venv/lib/python2.7/site-packages/django/db/models/query.py", line 405, in get_or_create
return self.get(**lookup), False
File "/home/polesz/Projects/dem/venv/lib/python2.7/site-packages/django/db/models/query.py", line 325, in get
clone = self.filter(*args, **kwargs)
File "/home/polesz/Projects/dem/venv/lib/python2.7/site-packages/django/db/models/query.py", line 679, in filter
return self._filter_or_exclude(False, *args, **kwargs)
File "/home/polesz/Projects/dem/venv/lib/python2.7/site-packages/django/db/models/query.py", line 697, in _filter_or_exclude
clone.query.add_q(Q(*args, **kwargs))
File "/home/polesz/Projects/dem/venv/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1306, in add_q
clause, require_inner = self._add_q(where_part, self.used_aliases)
File "/home/polesz/Projects/dem/venv/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1333, in _add_q
current_negated=current_negated, connector=connector, allow_joins=allow_joins)
File "/home/polesz/Projects/dem/venv/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1175, in build_filter
self.check_related_objects(field, value, opts)
File "/home/polesz/Projects/dem/venv/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1070, in check_related_objects
self.check_query_object_type(value, opts)
File "/home/polesz/Projects/dem/venv/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1054, in check_query_object_type
(value, opts.object_name))
ValueError: Cannot query "polesz": Must be "User" instance.
While debugging, it turns out that the value of the user variable is indeed a User instance. Do I miss some key information here? Maybe apps are not fully initialized when I run migrations?
Best,
Gergely
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CACczBULo9LgrJ-d7AfmGUDN0aV9DRoz4gSRQJGLBQh9-PGmn6A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
No comments:
Post a Comment