인프런 커뮤니티 질문&답변

yurikim님의 프로필 이미지
yurikim

작성한 질문수

파이썬 사용자를 위한 웹개발 입문 A to Z Django + Bootstrap

TypeError : on_delete must be callable.

작성

·

510

0

선생님 강사님 박사님..

강의를 한번 쭉 듣고나서 컴퓨터 앞에 앉아서 따라하면서 만들어가는 중입니다. 만들어지는걸 보면서 따라하니까 너무 재밌네요. 카테고리 생성까지만 따라한 후 vultr 가상서버호스팅을 시도하는데 오류가 나요..

일반 터미널에서는 python manage.py makemigrations/migrate/runserver가 모두 정상 작동하는데 비해 root@vultr에서는 on_delete must be callable. 에러가 나서 넘어가질 않아요. models.py에서 수정을 하고 다시 해보아도 수정 사항이 반영되지 않은 상태로 같은 오류 메세지가 나오는데 어떻게 수정해야 할까요? django는 2.2 버전을 설치했어요. (강의 중에는 vultr에서 elvis_admin으로 로그인 하시던데 elvis_admin을 어느 항목에서 가져온지 몰라서 Root의 가상 환경에서 하고 있어요.)

아래는 터미널 창 오류 메세지 인데요, 어떻게 수정을 해야 넘어갈 수 있을지 조언 부탁 드립니다. 감사합니다.

^C(venv) root@vultr:~/github/djangoyuri2.2# python manage.py makemigrations
Traceback (most recent call last):
  File "manage.py", line 21, in <module>
    main()
  File "manage.py", line 17, in main
    execute_from_command_line(sys.argv)
  File "/root/github/djangoyuri2.2/venv/lib/python3.6/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "/root/github/djangoyuri2.2/venv/lib/python3.6/site-packages/django/core/management/__init__.py", line 377, in execute
    django.setup()
  File "/root/github/djangoyuri2.2/venv/lib/python3.6/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/root/github/djangoyuri2.2/venv/lib/python3.6/site-packages/django/apps/registry.py", line 114, in populate
    app_config.import_models()
  File "/root/github/djangoyuri2.2/venv/lib/python3.6/site-packages/django/apps/config.py", line 211, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/root/github/djangoyuri2.2/blog/models.py", line 34, in <module>
    class Post(models.Model):
  File "/root/github/djangoyuri2.2/blog/models.py", line 41, in Post
    author = models.ForeignKey(User, on_delete=True)
  File "/root/github/djangoyuri2.2/venv/lib/python3.6/site-packages/django/db/models/fields/related.py", line 801, in __init__
    raise TypeError('on_delete must be callable.')
TypeError: on_delete must be callable.

답변 4

4

SungYong Lee님의 프로필 이미지
SungYong Lee
지식공유자

안녕하세요. 이 문제는 django 3.0으로 되어 있어서 발생하는 문제같습니다. 

일단 pip list로 장고가 2.x가 설치되어 있는지 확인해주세요. 

django 3.0을 쓰시려면 on_delete=models.CASCADE로 해주시면 될거에요. 

1

yurikim님의 프로필 이미지
yurikim
질문자

네, 답변 감사합니다. 2.2로 설치하니까 잘 되네요.

0

마지막 댓글분은 `makemigration`-> `makemigrations`

typo 인것 같아요!

0

저도 같은 오류 입니다 ㅠㅠ

 




 이 오류로 인해서

이렇게도 바꿔보았으나 

이 오류가 발생합니다,, ㅠㅠ

yurikim님의 프로필 이미지
yurikim

작성한 질문수

질문하기