-
[Django] common app으로 공통코드 관리하기파이썬/Django 2022. 12. 30. 09:02728x90반응형
common app
모든 app에서 공유 가능한 공통 코드를 가지고 있는 앱.
📁 common/models.py
from django.db import models class CommonModel(models.Model): """ Common Model Definition """ # auto_now_add : 이 model이 처음 만들어진 날짜와 시간을 전달 created_at = models.DateTimeField(auto_now_add=True) # auto_now : 이 model이 업데이트 될 때마다 그 날짜와 시간을 전달 updated_at = models.DateTimeField(auto_now=True) class Meta: abstract = True
class Meta: 의 역할
이 CommonModel은 다른 model의 설계도로만 사용됨. 즉, 인터페이스의 역할만 제공하는 것이 목적이기 때문에
Django가 늘 하듯이 데이터베이스에 해당 model의 table을 만들지 않도록 명령하는 역할을 한다.
그리고 사용할 다른 app의 model에서 CommonModel을 상속받아서 사용한다.
class Room(CommonModel):
class Amenity(CommonModel):
Common app 사용하기
readonly_fields 에 튜플로 사용할 common app의 변수를 넣어준다.
📁 rooms/admin.py
@admin.register(Amenity) class AmenityAdmin(admin.ModelAdmin): list_display = ( "name", "description", "created_at", "updated_at", ) readonly_fields = ( "created_at", "updated_at", )
결과
LIST'파이썬 > Django' 카테고리의 다른 글
[Django] ORM, QuerySet, Lookup (0) 2023.01.03 [Django] 관계(Relationship) 설정하기 many to many, one to may, many to one (0) 2022.12.31 [Django] app 생성하고 model 설정하기, 옵션 추가하기 (0) 2022.12.29 [Django] 모델 간 데이터 연결하는 방법, 외래키(FK) 사용하기 (0) 2022.12.27 [Django] 어드민 페이지 커스텀하기 (0) 2022.12.27