안녕하세요. 장고를 막 시작한 비전공자 초보입니다…제가 게시판을 만드는 작업을 하다 맨

 
Joo Wook

안녕하세요. 장고를 막 시작한 비전공자 초보입니다…제가 게시판을 만드는 작업을 하다 맨땅에 헤딩을 계속해도 답이 잘 안보여 질문을 드려요..ㅠㅠ

사연은 이렇습니다.

캡쳐한 join쿼리문과 같은 결과를 뿌려주고 싶은 데 ORM을 어떻게 해줘야 할지 잘 모르겠습니다…ㅠㅠ

대략 TblOrderList.objects.filter(uid=TblOrderComment__order_uid).values_list(“job_type”)
TblOrderList.objects.raw(sql join문)…

여기까지가 제가 삽질한 결과물입니다..ㅠㅠ물론 에러메세지를 출력하고 raw함수를 쓰는 것은 좀 그런 것 같아서…여기에 질문을 드려요~

참 두 테이블은 외래키로 연결되지 않았습니다…:(
TblOrderList테이블과 TblOrderComment테이블은 1대다수관계로 생각합니다…(비전공자여서 잘몰라요… 1오더안에는 여러 comment를 갖을 수 있어서 이렇게 생각했습니다.)

마지막으로 학교숙제같은 질문을 드려 죄송합니다…(–)(__)


  • Chinseok Lee

    TblOrderComment 모델에서 order_uid 필드를 ForeignKey 로 변경하시고

    order = models.ForeignKey(‘TblOrderList’, db_column=’order_uid’)

    다음과 같이 해보세요.

    for comment in TblOrderComment.objects.filter(contents__contains=’To’).select_related(‘order’):
    … print(comment.order.job_type, comment.order.uid, comment.contents)

    Joo Wook

    고맙습니다. 집에 가서 시도해보겠습니다~~

    Joo Wook

    자문자답입니다… 쿼리문을 직접 넣어서 해봤습니다.
    def dictfetchall(cursor):
    ”’Return all rows from a cursor as a dict”’
    columns = [col[0] for col in cursor.description]
    return [
    dict(zip(columns, row))
    for row in cursor.fetchall()
    ]
    위 함수를 써서 페이지만드는 함수에 넘기니 되었습니다…ㅎㅎ

Advertisements