1. Django Tutorial(Airbnb) - Meta Class
8017 단어 django tutorialdjango tutorial
🌈 Meta Class
🔥 abstract
🔥 verbose_name & verbose_name_plural
🔥 ordering
1. abstract
- Meta Class의 abstract는 Default가 "abstract=False"이고, "abstract=True"로 할 경우 Abstract Model로 사용 가능 해요. 실제 존재하는 DB가 아닌 다른 Model에서 상속하여 사용할 목적으로 테이블을 만들 때 사용합니다.
class AbstractItem(core_models.TimeStampedModel): # 👈 TimeStampedModel 상속 받음 """AbstractItem Object Definition""" name = models.CharField(max_length=80) class Meta: abstract = True # 👈 Abstract Model로 사용 def __str__(self): return self.name class RoomType(AbstractItem): # 👈 AbstractItem 상속 받음 """Room Type Model Definition""" pass class Amenity(AbstractItem): # 👈 AbstractItem 상속 받음 """Amenity Model Definition""" pass class Facility(AbstractItem): # 👈 AbstractItem 상속 받음 """Facility Model Definition""" pass class HouseRule(AbstractItem): # 👈 AbstractItem 상속 받음 """HouseRule Model Definition""" pass
2. verbose_name & verbose_name_plural
- Admin Panel을 보면, Django에서 알아서 모든 Model 이름에 "s"를 붙여준 것을 볼 수 있어요. Django가 알아서 복수로 표현시켜 줍니다.
- 다만, "verbose_name"과 "verbose_name_plural" 속성을 통해 이를 다르게 지정할 수 있어요!
- verbose_name은 "지정한 값 + s"를 붙여줍니다.
- verbose_name_plural은 "지정한 이름" 그대로 사용합니다.
class RoomType(AbstractItem): """Room Type Model Definition""" class Meta: verbose_name = "Room Type" # 👈 Room Types로 나타남 class Amenity(AbstractItem): """Amenity Model Definition""" class Meta: verbose_name_plural = "Amenities" # 👈 Amenities로 나타남 class Facility(AbstractItem): """Facility Model Definition""" class Meta: verbose_name_plural = "Facilities" # 👈 Facilities로 나타남 class HouseRule(AbstractItem): """HouseRule Model Definition""" class Meta: verbose_name = "House Rule" # 👈 House Rules로 나타남
3. ordering
- ordering은 Model의 데이터(Object)들을 정렬하는데 사용해요!
- 🔎 ordering = [정렬 기준 필드값]
class RoomType(AbstractItem): """Room Type Model Definition""" class Meta: verbose_name = "Room Type" ordering = [created] # 👈 생성시간 기준으로 정렬(부모 Model에 created 필드가 존재) class Amenity(AbstractItem): """Amenity Model Definition""" class Meta: verbose_name_plural = "Amenities" ordering = [name] # 👈 알파벳 기준으로 정렬(부모 Model에 name 필드가 존재)
Author And Source
이 문제에 관하여(1. Django Tutorial(Airbnb) - Meta Class), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jewon119/Django-기초-Meta-Class저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)