Django model 에서 db_table 에 설정한 대로 테이블명 생성이 안 되는 문제 (with djongo, mongodb)

sig03
Oct 20, 2022

--

django model에서 테이블명 생성 규칙은 아래와 같다.

appname_classname

테이블명이 이렇게 만들어지면 꼴보기 싫다. 그래서 db_table 옵션으로 커스텀한 테이블명을 만들 수 있다.

본인의 작업 환경 drf, djongo, mongodb 에서 콜렉션명(=테이블명)을 커스텀해 만들려고 했다. 그러나 안 된다. 계속 appname 이 붙어서 생성된다. djongo의 문제인가? 그것도 아닌 것 같고. 그런데 또 커스텀한대로 생성된 콜렉션도 있다. 뭐가 문제인가? 원인은 아주 단순했다.

class Meta 를 선언해 주는데 대소문자 구분을 명확히 해야 한다는 것. META로 썼더니 오류는 안 나고 기능은 동작하지 않았다.

class TableName(models.Model):
_id = models.UUIDField(editable=False)
test = models.CharField(max_length=256)
# class META로 쓰면 기능 동작 안함
class Meta:
db_table = "user_table_name"

나도 모르게 계속 META로 타이핑하고 있었다. 진짜 어이없네. 에러를 내 주던가.

--

--

sig03
sig03

No responses yet