Django Model ~ Admin까지 Quick Review
Config - master folder
나머지 생성해준 폴더들은, 모두 application이다.
application = function의 group
처음에, models & admin 을 건드림.
장고가 우리가 쓴 코드를 이용함. 파이썬 코들르 SQL문으로 자동으로 바꿔서 데이터베이스와 소통해준다.
models.py에 적은 코드는, 장고가 알아서 데이터베이스 테이블로 만들어준다.
Model은 fields로 구성되어 있다. textField, CharField, 등등등.
model을 직접 보려면, admin 패널을 보면 된다.
admin.py에서 일단 modeldmf Class로 register해준다.
@admin.register(models.User)
하단에 model에서 선언해준 변수 중 필요한 것들을 원하는 순서에 따라 언급해준다.
변수는 fieldsets, list_display 와 같은 애들 안에 넣어주며 원하는 형태로 만들 수 있다.
장고가 admin 패널에서, register된 Model과 class를 찾은 다음에 특정 키워드를 찾을 것이다.
드디어 최근 들어서야 객체지향언어의 위대함을 이해하게 되었다.. 그동안 왜 그게 위대한지 몰랐지.
이제 체감하게 되었다. 그 편리함을. 아주 거북이처럼 성장하기는 하는구먼.
TimestampedModel
core application을 새로 생성 (django-admin startapp core)
class TimestampedModel(models.Model):
created = models.DateTimeField()
updated = models.DateTimeField()
이렇게 해주고, 전체 모델들을 상속시키는면 불필요한 코드반복을 줄일 수 있다.
그런데 이 모델이 데이터베이스에 들어가기를 원하지 않기 때문에, Meta class를 만든다.
class TimestampedModel(models.Model):
created = models.DateTimeField()
updated = models.DateTimeField()
Class Meta:
abstract = True
여기서 abstract model은 데이터베이스에 등록되지 않는 model이다.
class TimestampedModel(models.Model):
created = models.DateTimeField(auto_now=True)
updated = models.DateTimeField(auto_now_add=True)
Class Meta:
abstract = True
auto_now_add = True를 하면, 해당 필드는 Model을 생성할 때마다 수시로 업데이트 한다.
auto_now=Trues는 매번 Model을 저장할 떄마다 새로운 날짜를 get(업데이트) 할 수 있게 된다.
Foreign Key
모델과 모델을 연결하는 방법.
-> 연결할 모델을 import해오고, 다음과 같이 코드를 써준다.
host = models.ForeignKey(user_models.User, on_delete=models.CASCADE)
'💻 Deep Wide Programming > Django' 카테고리의 다른 글
Django Admin 커스터마이징 하기 (0) | 2021.02.17 |
---|---|
Django Templates (0) | 2020.12.31 |
장고 공부에 도움되는 사이트 링크 & 장고 템플릿 언어 (0) | 2020.12.17 |
[⛺️Django] MORE about ADMINS + a #학습메모 (0) | 2020.11.15 |
[⛺️Django] MODELS AND QUERYSETS 메모 (0) | 2020.11.11 |