장고에서 모델을 생성할때 주의할 점
- 자식 테이블에서 부모를 명시해줌
- 자식 테이블에서 부모의 테이블명과 같게 해주고 소문자로
1
2
3
4
5
6
7
8
9
|
# models.py
class Academy(models.Model):
name = models.CharField(max_length=200, null=False)
class Subject(models.Model):
subname = models.CharField(max_length=200, null=False)
academy = models.ForeignKey(Academy, null=True, on_delete=models.CASCADE, related_name='subjects')
|
cs |
1
2
3
4
5
6
7
8
|
# serializer
class AcademySerializer(serializers.ModelSerializer):
subjects = AddSubjectSerializer(read_only=True, many=True) # <-----(1)
class Meta:
model = Academy
fields = ['id', 'name', 'subjects']
|
cs |
- serializer에서 자식을 추가할 때 reloated_name이랑 일치시켜줘야 함
www.django-rest-framework.org/api-guide/relations/#stringrelatedfield
1
2
3
4
5
6
7
8
|
HTTP 200 OK
Allow: GET, HEAD, OPTIONS Content-Type: application/json Vary: Accept [ { "id": 1, "name": "1학원", "subjects": [ { "id": 1, "subname": "1과목", "academy": 1 }, { "id": 2, "subname": "2과목", "academy": 1 } ] }, { "id": 2, "name": "2학원", "subjects": [] } ] |
cs |
'코딩 > 장고' 카테고리의 다른 글
django login knox (user extention one to one) (0) | 2021.01.06 |
---|---|
장고 파일 다운로드 인코딩 에러 (0) | 2020.10.21 |
장고 프로젝트에서 admin접속 시 서버 꺼질때 (0) | 2020.10.13 |
장고에서 공통코드를 처리하는 법 (0) | 2020.10.12 |
jwt 토큰이란 (1) | 2018.12.06 |