2014-09-09 2 views
0

플라스크와 Flask-Admin 확장 프로그램을 사용하고 있습니다. 나는 (SQL 연금술 사용) 두 가지 모델이 있습니다플라스크의 목록 템플릿 수정

  • 프로젝트를
  • 작업

프로젝트는 속성이 있습니다

tasks = db.relationship('Task', backref=db.backref('project')) 

을 그리고 작업 키와 자기 참조 트리 구조입니다 작업의 열 :

children = db.relationship("Task", 

     # cascade deletions 
     cascade="all, delete-orphan", 

     # many to one + adjacency list - remote_side 
     # is required to reference the 'remote' 
     # column in the join condition. 
     backref=db.backref("parent", remote_side=id), 

     # children will be represented as a dictionary 
     # on the "title" attribute. 
     collection_class=attribute_mapped_collection('title'), 
     ) 

모든 프로젝트를 보여주는 Flask-Admin의 목록 템플릿을 갖고 싶습니다. 이것은 확장자와 표준 목록보기를 사용하여 쉽게 수행 할 수 있습니다. 하지만 지금은 CRUD 인터페이스 (예 : http://examples.flask-admin.org/sqla/simple/admin/userview/)를 프로젝트에 대한 각각을 클릭 할 때 나타나는 작업에 추가하려고합니다.

이 목표에 도달하는 가장 좋은 방법은 무엇인지 알 수 없습니다. 나는 프로젝트 행의 각 테이블 셀에있는 Task에 iframe을 포함시키는 것에 대해 생각했다. 그러나 이것은 어떻게 든 추악합니다. 프로젝트 목록 템플릿에서 해당 프로젝트에 속한 작업에 대한 CRUD 인터페이스를 어떻게 렌더링 할 수 있습니까?

Flask-Admin은 (모델의 외래 키를 통해) 두 테이블을 함께 연결할 수 있지만 표준 방법은 프로젝트에서 가져 오는 클릭이 적어도 한 번 필요하므로 원하는 방식이 아님을 알고 있습니다. 깔끔한 인터페이스를 제공합니다. 내가 원하는 것은 같은 페이지에 두 가지 인터페이스를 모두로드하는 것입니다. 그것은 다음과 같습니다 문서를 보면

답변

1

Project 모델 뷰에 inline-models 클래스 속성을 제공하는만큼 간단하다 :

class ProjectModelView(ModelView): 
    inline_models = (Task,) 
+0

가에보고해야합니까! 당신의 대답에 대한 큰 감사, 나는이 문제에 정말로 시간을 보냈다. –