Img profile default
python
  • 2016.5.28 18:21
  • 조회수 71
  • 답변수 3
Img profile default
python
  • 2016.5.28 18:21
  • 조회수 71
  • 답변수 3

데이터베이스 질문

모델에서 만든 데이터들을 db에 저장하고 나서
db에 저장된 데이터 객체명을 바꾸거나 삭제를 못하나요?

  • #장고를 활용한 웹사이트 만들기
  • #장고 shell

3 답변

  • G3rlasealonpd5c2kica
    Demi
    • 2016.5.30 12:13

    shell이나 admin 페이지 등에서 삭제할 수 있습니다.
    shell에서는 쿼리가 복잡하니 admin 페이지에서 확인해보세요.

    • 제가 질문을 잘못 올린거 같네요 candidate, name,area 와 같은 변수의 이름을 변경/삭제가 admin에서도 가능한가요?-python
      2016.5.30 17:48
  • G3rlasealonpd5c2kica
    Demi
    • 2016.5.30 18:01

    변수에 이름..이 뭘 뜻하시는건지 모르겠습니다.
    혹시 admin페이지에서 로그인하면 처음 보이는 Elections(보통 파란색배경에 하얀 글씨) 탭 하단에 있는 Candidates/Choices/Polls(보통 하얀배경에 파란 글씨) 등을 의미하시는건가요?

    이건 어플리케이션의 admin.py 에서 admin.site.register(...) 부분을 지우면 됩니다.

    • 모델에서 candidate를 정의하고 그 안에 name, area,introduction 넣잔아요 이걸 db에 저장하고 나서 나중에 name, area,introduction 의 이름을 변경하거나 삭제하는게 가능한지 질문드리는겁니다. 허접한 질문에 계속 답변해주셔서 감사합니다.--python
      2016.5.30 21:49
    • 아, 모델클래스에 필드를 바꾸는걸 얘기하시는 것 같네요. 모델 클래스를 변경할 경우에는 코드를 변경한 후 DB 마이그레이션 작업을 다시 해줘야합니다.-Demi
      2016.5.30 22:11
    • 모델클래스에서 필드명을 변경하면 뷰나 템플릿에서도 변경해 줘야 하지않나요? -장재원
      2016.6.14 09:47
    • @장재원 해당 필드를 뷰나 템플릿에서 사용하고 있었다면 에러가 발생할겁니다.-Demi
      2016.6.14 11:34
  • G3rlasealonpd5c2kica
    Demi
    • 2016.5.30 22:14

    class Mymodel(models.Model):
        myfield = models.CharField(...)
    

    이런 DB를

    class Mymodel(models.Model):
        myfield2 = models.CharField(...)
    

    이런 식으로 바꾸거나 삭제하는걸 말씀하시는 것 같네요.
    코드 변경 후 마이그레이션과 DB 강의에서 했던 makemigrations, migrate 해주시면 됩니다.

    다만 기존에 필드를 변경하거나 추가할 경우, django에서 디폴트 값 등의 추가 정보를 요구할 수 있습니다.

    • 강의 내용에도 없는 질문에도 친절히 설명해주셔서 감사합니다-python
      2016.5.30 23:18
    • 모르는게 있으면 질문 달아주세요~-Demi
      2016.5.31 12:36

답변 쓰기

이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.