갈루아의 반서재

Adding related objects


하나의 질문에 여러 개의 보기가 있을 수 있음에도, 예제 이미지에는 보기가 보이지 않는다.

이 경우 아래와 같이 해결한다.





"Question" 필드는 select box 형태를 지니고 있고 현재 존재하는 모든 질문이 들어간다. 즉, 답변이 질문에 대해 가지는 FK 관계가 <select> 박스로 표현되는 것이다.



 


하지만 위와 같이 답변 문항을 생성하는 것은 비효율적이다. 한꺼번에 해당 질문에 대한 답변을 등록할 수 있다면 더욱 효과적일 것이다.


먼저 Choice 모델을 호출하는 register() 를 삭제한 후 다음과 같이 코딩한다. 아래의 의미는 다음과 같다.


Choice 오브젝트는 어드민 페이지의 Question 에서 편집 가능하며, 기본값으로 3개의 답변 필드를 가진다.





하지만 하나의 문제가 있는데, 관련되는 답변 문항을 입력하는데 너무 많은 화면을 차지한다는 것이다.

아래와 같이 StackedInline 을 TabularInline 으로 수정하면 좀 더 깔끔한 화면을 얻을 수 있다.