python - Unknown column '' in 'field list'. Django -


i'm using django 1.9 , mysql. want rename field in model. let's @ model choice django getting started tutorial.

class choice(models.model):   question = models.foreignkey(question)   choice_text = models.charfield(max_length = 200)   votes = models.integerfield(default=0) 

so, want rename votes field votes_count. created empty migration , add operations following line:

migrations.renamefield (     model_name='choice',     old_name='votes',     new_name='votes_count', ), 

after python manage.py migrate, field in database table renamed. when tried use model

def vote(request, question_id):   question = get_object_or_404(question, pk=question_id);   try:     selected = question.choice_set.get(pk=request.post['choice'])   except (keyerror, choice.doesnotexist):     return render(request, 'polls/detail.html', {       'question':question,       'error_message':"you didn't select choice."     })   else:     selected.votes_count += 1     selected.save()     return httpresponseredirect(reverse('polls:results', args=(question_id))) 

i got:

unknown column 'polls_choice.votes' in 'field list

    traceback:      file "/home/verdigo/venv/lib/python3.4/site-packages/django/db/backends/utils.py" in execute       64.                 return self.cursor.execute(sql, params)      file "/home/verdigo/venv/lib/python3.4/site-packages/django/db/backends/mysql/base.py" in execute       112.             return self.cursor.execute(query, args)      file "/home/verdigo/venv/lib/python3.4/site-packages/mysqldb/cursors.py" in execute       226.             self.errorhandler(self, exc, value)      file "/home/verdigo/venv/lib/python3.4/site-packages/mysqldb/connections.py" in defaulterrorhandler       36.         raise errorvalue      file "/home/verdigo/venv/lib/python3.4/site-packages/mysqldb/cursors.py" in execute       217.             res = self._query(query)      file "/home/verdigo/venv/lib/python3.4/site-packages/mysqldb/cursors.py" in _query       378.         rowcount = self._do_query(q)      file "/home/verdigo/venv/lib/python3.4/site-packages/mysqldb/cursors.py" in _do_query       341.         db.query(q)      file "/home/verdigo/venv/lib/python3.4/site-packages/mysqldb/connections.py" in query       280.             _mysql.connection.query(self, query)      above exception ((1054, "unknown column 'polls_choice.votes' in 'field list'")) direct cause of following exception:      file "/home/verdigo/venv/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response       149.                     response = self.process_exception_by_middleware(e, request)      file "/home/verdigo/venv/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response       147.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)      file "./polls/views.py" in vote       23.     selected = question.choice_set.get(pk=request.post['choice'])      file "/home/verdigo/venv/lib/python3.4/site-packages/django/db/models/manager.py" in manager_method       122.                 return getattr(self.get_queryset(), name)(*args, **kwargs)      file "/home/verdigo/venv/lib/python3.4/site-packages/django/db/models/query.py" in       381.         num = len(clone)      file "/home/verdigo/venv/lib/python3.4/site-packages/django/db/models/query.py" in __len__       240.         self._fetch_all()      file "/home/verdigo/venv/lib/python3.4/site-packages/django/db/models/query.py" in _fetch_all       1074.             self._result_cache = list(self.iterator())      file "/home/verdigo/venv/lib/python3.4/site-packages/django/db/models/query.py" in __iter__       52.         results = compiler.execute_sql()      file "/home/verdigo/venv/lib/python3.4/site-packages/django/db/models/sql/compiler.py" in execute_sql       848.             cursor.execute(sql, params)      file "/home/verdigo/venv/lib/python3.4/site-packages/django/db/backends/utils.py" in execute       79.             return super(cursordebugwrapper, self).execute(sql, params)      file "/home/verdigo/venv/lib/python3.4/site-packages/django/db/backends/utils.py" in execute       64.                 return self.cursor.execute(sql, params)      file "/home/verdigo/venv/lib/python3.4/site-packages/django/db/utils.py" in __exit__       95.                 six.reraise(dj_exc_type, dj_exc_value, traceback)      file "/home/verdigo/venv/lib/python3.4/site-packages/django/utils/six.py" in reraise       685.             raise value.with_traceback(tb)      file "/home/verdigo/venv/lib/python3.4/site-packages/django/db/backends/utils.py" in execute       64.                 return self.cursor.execute(sql, params)      file "/home/verdigo/venv/lib/python3.4/site-packages/django/db/backends/mysql/base.py" in execute       112.             return self.cursor.execute(query, args)      file "/home/verdigo/venv/lib/python3.4/site-packages/mysqldb/cursors.py" in execute       226.             self.errorhandler(self, exc, value)      file "/home/verdigo/venv/lib/python3.4/site-packages/mysqldb/connections.py" in defaulterrorhandler       36.         raise errorvalue      file "/home/verdigo/venv/lib/python3.4/site-packages/mysqldb/cursors.py" in execute       217.             res = self._query(query)      file "/home/verdigo/venv/lib/python3.4/site-packages/mysqldb/cursors.py" in _query       378.         rowcount = self._do_query(q)      file "/home/verdigo/venv/lib/python3.4/site-packages/mysqldb/cursors.py" in _do_query       341.         db.query(q)      file "/home/verdigo/venv/lib/python3.4/site-packages/mysqldb/connections.py" in query       280.             _mysql.connection.query(self, query)      exception type: operationalerror @ /polls/1/vote/     exception value: (1054, "unknown column 'polls_choice.votes' in 'field list'") 

it looks if created , ran migration rename model field votes votes_count, did not update model @ same time.

when django tries fetch model db, tries select votes column because still have votes field in models, , error because column doesn't exist in database.

creating manual migration isn't necessary. usually, rename model field, run makemigrations, run migrate. advantage of letting django create migration can confident database in sync models after have run migrate.


Comments

Popular posts from this blog

routing - AngularJS State management ->load multiple states in one page -

python - GRASS parser() error -

Swift game error message -