Models
'models.ImageField'를 사용하려면 터미널에 'poetry add pillow'를 해주어야 한다.
#선택지 만들기
class GenderChoices(models.TextChoices):
MALE = ("male","Male") #(데이터 베이스에 들어갈 값, 관리자 페이지에서 보게될 label)
FEMALE = ("female","Female")
gender = models.CharField(max_length=10,choices=GendrChoices.choices) #max_length는 선택지보다 길게,choices=클래스명.choices
ManytoManyField: N:M, M:N -> 여러 개의 Amenity들이 여러 Room에 들어갈 수 있는 것처럼 다대다의 관계
1:N의 관계에서는 ForeignKey를 사용하고, N:M의 관계에서는 ManytoMany를 사용한다.
다른 App들과 재사용할 코드
common이라는 App을 만들고 다른 App들의 model을 만들 때 처럼 만든다.
class Meta:
abstract = True #데이터베이스에 common 모델을 저장하지 않겠다. 실제 데이터로 사용하지 않겠다.
이 코드를 아래에 사용해준다.
from common.models import CommonModel
class Room(CommonModel): #CommonModel을 models.Model 대신 상속
이렇게 사용해준다.
Admin패널에 적힌 오타 고치기
#오타가 난 class 안에
class Meta:
verbose_name_plural = "정정"
SET_NULL
category = models.ForeignKey("categories.Category",on_delete=SET_NULL)
이 코드에서, 'on_delete=SET_NULL'로 인해 category가 삭제되면 남아있는 room이나 experience의 category는 null로 남게된다.
verbose_name: Admin 패널에서 보이는 App이름을 바꾸고 싶으면 apps.py에 verbose_name= " "을 사용한다.
728x90
'노마드 코더 Airbnb 클론 코딩' 카테고리의 다른 글
노마드 코더 에어비앤비 클론 코딩 #8 Power Admin (0) | 2022.10.21 |
---|---|
노마드 코더 에어비앤비 클론 코딩 #7 ORM (0) | 2022.10.19 |
노마드 코더 에어비앤비 클론코딩 #5 USERS APP (1) | 2022.10.13 |
노마드 코더 에어비앤비 클론코딩 #4 App 만들기 (0) | 2022.10.09 |
노마드 코더 에어비앤비 클론코딩 #3 (0) | 2022.10.09 |