장고는 각 모델을 테이블에 매핑하기 때문에. 내 코드에 패키지를 만들 수 없습니다. 클래스의 섹션을 래핑하여보다 논리적으로 만들고 커플 링을 늘릴 수 있습니다. 예를장고 모델에서 클래스를 만드는 방법
class Employee(models.Model):
#personal information
first_name = models.CharField(max_length=20)
middle_initial = models.CharField(max_length=1)
last_name = models.CharField(max_length=20)
dob = models.DateField()
#job contract information
full_time = models.BooleanField()
hours_per_day = models.PositiveSmallIntegerField()
#.. and more
를 들어
는 내가 뭘하려고 그러나 이것이 내가 새로운 모델을 만들고 OneToOneField
를 사용하여 직원 모델과 연결해야 함을 의미이
employee.job.is_full_time
employee.job.get_hours_per_day
# and more
입니다. 나는 그것을하고 싶지 않다. 데이터베이스의 조인은 비싸다. 이런 식으로 뭔가를 만들 수 있습니까?
class Employee(models.Model):
class PersonalInformation:
first_name = models.CharField(max_length=20)
middle_initial = models.CharField(max_length=1)
last_name = models.CharField(max_length=20)
dob = models.DateField()
class Job:
full_time = models.BooleanField()
hours_per_day = models.PositiveSmallIntegerField()
#.. and more
대답의 주요 핵심은 데이터베이스에 한 테이블에 매핑 될 예정 여러 클래스를 포함하는 모델을 만드는 것입니다.
음,이 모델 접근법은 mongodb/nosql을위한 것이 아니므로 실제로 이런 모델을 중첩 할 수는 없습니다. 만약 당신이 가입하고 싶지 않다면 하나의 테이블을 가져야하며 모든 것이 같은 레벨이어야합니다. –
@AntoinePelisse 적어도 하나의 테이블에 여러 클래스를 매핑하는 방법이어야합니다. 이것은 모든 시스템 분석 및 설계의 기본 사항 중 하나입니다. – Othman