Models - Fields(Field Name Restrictions)
Field name restrictions
Django 는 모델 필드 이름들에 대한 제약이 있습니다.
필드명은 파이썬 예약어들이 될수 없습니다. 만약 사용한다면, 파이썬 문법 에러를 발생 시킵니다.
1
2
3
4
5class Example(models.Model):
pass = models.IntegerField()
# pass 는 파이썬에서 reversed word (예약어) 입니다
# 따라서, 모델의 필드명이 될수 없습니다
필드명은 하나 이상의 언더스코어를 사용할수 없습니다. Django 의 쿼리 조회문이 언더스코어를 2개 사용하기 때문에, 필드명은,
__
를 가질수 없습니다.1
2
3
4class Example(models.Model):
foo__bar = models.IntegerField()
# foo__bar 는 언더스코어 2개를 가지고 있습니다. 잘못된 필드명입니다.
비슷한 이유로, 언더스코어로 끝나면 안됩니다. 쿼리 구문과 겹치기 때문입니다
1
2
3
4class Example(models.Model):
foobar_ = models.InegerField()
# foobar_ 처럼 언더스코어로 끝나는 필드명은 사용하면 안됩니다.