소프트웨어 마에스트로/BackEnd(Django)
[Django] manyTomany 필드 사용해보기
alpakaka
2024. 11. 17. 18:28
이것저것 찾아봤는데 어제의 상황에서는 ManyToMany 가 가장 베스트인 상황같다.
일단 통계내기도 편해보이고...
일단 적용해보려고 한다.
일단 지연 행동 이유는 다음과 같고
이걸 이 순서 그대로 차곡차곡 db에 넣어주면 된다.
class DelayReason(models.Model):
reason = models.CharField(max_length=255)
def __str__(self):
return self.reason
이런식으로 db를 만들어준다.
class Profile(models.Model):
class Age(models.TextChoices):
TEN = "10"
TWENTY = "20"
THIRTY = "30"
FOURTY = "40"
FIFTY = "50"
user = models.OneToOneField(
User,
on_delete=models.CASCADE,
related_name="profile",
)
username = models.CharField(max_length=255, null=True)
age = models.CharField(
max_length=30,
choices=Age.choices,
)
job = models.CharField(max_length=255)
sleep_time = models.TimeField(format="%H:%M")
wake_time = models.TimeField(format="%H:%M")
delay_reason = models.ManyToManyField(DelayReason)
심심하게 궁금했던 건데 왜 manyTomany 에는 null true 가 없는지 간단하게 물어봤다.
중간 테이블이 있는 상태라 그렇다고 하는 것 같다.
추가적으로 모든 profile 은 user 에 묶여있어야하는상태이지만
user가 필수적으로 Profile을 가지는 상태는 아니다. 이런상태는 oneToOne을 사용하는게 더 적절해보여서 수정해보았다.
잘 넣어주었다.