model.py를 다음 처럼 작성하고 from django.db import models

 
Noo Yoon

model.py를 다음 처럼 작성하고

from django.db import models

# Create your models here.

class Article(models.Model):
title = models.CharField(max_length=200, null=False)
reg_date = models.DateTimeField(auto_now_add=True, null=False)
update_date = models.DateTimeField(auto_now=True, null=False)
reg_id = models.CharField(max_length=20, null=False)
content_id = models.ForeignKey(“ArticleContent”)
category_id = models.ForeignKey(“ArticleCategory”)

def __str__(self):
return self.title

class ArticleContent(models.Model):
content = models.TextField()

def __str__(self):
return self.content

class ArticleCategory(models.Model):
category = models.CharField(max_length=20, null=False)

def __str__(self):
return self.category

python manage.py migrate
python manage.py runserver

이렇게 실행을 해봤는데 django admin으로 들어가 보면 변경이 되어있지 않아요.

테이블로 들어가보면 no such column에러가 발생하구요.

제가 놓치고 있는게 어떤건가요?

  • Chinseok Lee

    migrate 전에 makemigrations 를 빠뜨리신 듯 하네요.

    Noo Yoon

    python manage.py makemigrations
    python manage.py migrate
    python manage.py runserver를 쓰면
    1) Provide a one-off default now (will be set on all existing rows)
    2) Quit, and let me add a default in models.py
    라고 떠서 1을 선택하고 exit를 했습니다.
    변화가 없는데 방법이 틀렸나요?

    김승호

    null=False로 정해준 필드들에서는 기본 값을 지정해주지 않으면 마이그레이션시 그런 메시지가 나타납니다.
    1번 이후에 기본 값을 입력해주셔도 되고, 필드 선언에 default=값 을 넣어주셔도 되겠고요~

    박영록

    django admin에서 어떤 결과를 기대했는데(expected) 실제로 어떤 결과가 나왔는지(actual)을 설명해주셔야 무슨 상황인지 알 것 같네요.

    그리고, makemigrations부터 migrate까지 명령어 실행한 내역과 결과 내역, 그리고 migrations 폴더의 내용을 github gist 같은 곳에 올려두면 더 도움이 될 듯.

    Seungho Kim

    혹시나해서… 어드민에 해당 모델 등록하셨나요?

    Noo Yoon

    모두들 감사합니다. 복합적인 문제였네요. admin.py에 등록도 안하고 null=fasle로 해서 기본값 지정도 안하고 ㅋㅋ 모두 하니까 잘 되네요. 감사합니다.

Advertisements