django ManyToMany 필드 질문 입니다.

조회수 5344회

안녕하세요. 장고 관계형 모델 질문 입니다.

class Actress(models, model):
    Actress = models.CharField(max_length=30)


class Movielist(models.Model):
    title = models.CharField(max_length=30)
    cast = models.CharField(max_length=300)

위 두개의 모델 중 actress필드와 cast 필드를 다대다관계로 만드려고 합니다.

그런데 cast 필드의 데이터가 출연진 모두가 한 컬럼에 저장되어 있습니다. (ex:원빈, 이나영, 조진웅)

이런경우에는 한 컬럼에 있는 cast 필드의 데이터와 Actress 필드를 다대다로 매핑 시킬수 있나요?

가능하다면 어떻게 해야하는지 궁금합니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 장고의 Many-to-many relation에 대한 문서를 살펴보시면 좋겠습니다.

    이렇게 모델을 구성하고

    from django.db import models
    
    class Movie(models.Model):
        title = models.CharField(max_length=30)
    
    class Actress(models.Model):
        title = models.CharField(max_length=100)
        movies = models.ManyToManyField(Movie)
    

    아래와 같이 관계를 저장하면 됩니다.

    >>> m1 = Publication(title='국가대표2')
    >>> m1.save()
    >>> m2 = Publication(title='감기')
    >>> m2.save()
    >>> m3 = Publication(title='심야의 FM')
    >>> m3.save()
    >>> a1 = Article(title='수애')
    >>> a1.save()
    >>> a1.movies.add(m1)
    >>> a1.movies.add(m2)
    >>> a1.movies.add(m3)
    

    a1.movies.all()하면 해당 배우의 모든 영화를 가져올 수 있고

    m1.actress_set.all()하면 해당 영화의 모든 배우를 가져올 수 있습니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)