점프투장고2-2(60페이지)

진도에 따라 동일하게 코딩했는데, Question 클래스의 create_date필드가 없다고 합니다.
무엇이 원인인지 가르쳐 주세요.

from django.db import models

class Question(models.Model):
subject = models.CharField(max_length=200)
content = models.TextField()
create_date = models.DateTimeField()

class Answer(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
content = models.TextField()
create_date = models.DateTimeField()

------------------------------------------------------------------------
(mysite) c:\projects\mysite>python manage.py shell

Python 3.9.2 (tags/v3.9.2:1a79785, Feb 19 2021, 13:44:55) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)

from django.utils import timezone
from pybo.models import Question, Answer
q = Question(subject='pybo가 무엇인가요?', content='pybo에 대하여 알고 싶어요.', create_date=timezone.now() )
q.save()
Traceback (most recent call last):
File "C:\venvs\mysite\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
return self.cursor.execute(sql, params)
File "C:\venvs\mysite\lib\site-packages\django\db\backends\sqlite3\base.py", line 416, in execute
return Database.Cursor.execute(self, query, params)
sqlite3.OperationalError: table pybo_question has no column named create_date

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "", line 1, in
File "C:\venvs\mysite\lib\site-packages\django\db\models\base.py", line 743, in save
self.save_base(using=using, force_insert=force_insert,
File "C:\venvs\mysite\lib\site-packages\django\db\models\base.py", line 780, in save_base
updated = self._save_table(
File "C:\venvs\mysite\lib\site-packages\django\db\models\base.py", line 885, in _save_table
results = self._do_insert(cls._base_manager, using, fields, returning_fields, raw)
File "C:\venvs\mysite\lib\site-packages\django\db\models\base.py", line 923, in _do_insert
return manager._insert(
File "C:\venvs\mysite\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(args, *kwargs)
File "C:\venvs\mysite\lib\site-packages\django\db\models\query.py", line 1301, in _insert
return query.get_compiler(using=using).execute_sql(returning_fields)
File "C:\venvs\mysite\lib\site-packages\django\db\models\sql\compiler.py", line 1441, in execute_sql
cursor.execute(sql, params)
File "C:\venvs\mysite\lib\site-packages\django\db\backends\utils.py", line 99, in execute
return super().execute(sql, params)
File "C:\venvs\mysite\lib\site-packages\django\db\backends\utils.py", line 67, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "C:\venvs\mysite\lib\site-packages\django\db\backends\utils.py", line 76, in _execute_with_wrappers
return executor(sql, params, many, context)
File "C:\venvs\mysite\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
return self.cursor.execute(sql, params)
File "C:\venvs\mysite\lib\site-packages\django\db\utils.py", line 90, in exit
raise dj_exc_value.with_traceback(traceback) from exc_value
File "C:\venvs\mysite\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
return self.cursor.execute(sql, params)
File "C:\venvs\mysite\lib\site-packages\django\db\backends\sqlite3\base.py", line 416, in execute
return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: table pybo_question has no column named create_date

keumpa51 396

M 2022년 2월 17일 12:37 오후

목록으로
1개의 답변이 있습니다. 1 / 1 Page

안녕하세요.

Question 모델에는 create_date가 있지만 실제 테이블에는 create_date 컬럼이 생성되지 않은것 같습니다.
create_date 속성을 추가한후 디비 마이그레이션 작업이 진행 안된것 같습니다.

makemigrations와 migrate를 진행해 보세요.

박응용

2022년 2월 17일 1:25 오후

너무 너무 감사합니다. 필드명의 스펠링 수정후에 makemigrations와 migrate 하는 것을 잊었습니다. - keumpa51님, 2022년 2월 17일 1:57 오후 추천 , 대댓글