2011-11-29 2 views
1

ManyToManyField에서 데이터를 가져 오려고했지만 행운을 찾지 못했습니다. 나 좀 도와 줄래? 여기 내 Song App 모델입니다.ManyToManyField에서 데이터를 가져 오려고 시도했습니다.

class Artist(models.Model): 
    name = models.CharField(max_length=100) 
    slug = models.SlugField(unique = True,max_length=100,help_text="Suggested value automatically generated from name. Must be unique.") 


    class Album(models.Model): 
    name = models.CharField(max_length=100) 
    slug = models.SlugField(unique = True,max_length=100,help_text="Suggested value automatically generated from name. Must be unique.") 
    path = models.CharField(max_length=100,null=True, blank=True) 
    language = models.ForeignKey(Category) 
    albumid = models.CharField(max_length=100) 


    class Song(models.Model): 
    title = models.CharField(max_length=100) 
    artist = models.ManyToManyField(Artist) 
    music = models.ForeignKey(Music) 
    album = models.ForeignKey(Album) 

여기 내 견해입니다. 제목이있는 아티스트를 인쇄하고 싶습니다. Titles 잘 작동합니다. 그러나 아닙니다 Artist

def movie_details(request,slug): 
    movies = get_object_or_404(Movie,slug=slug) 
    # calculating wikipedia directory structer for images 
    #image_name = movies.image 
    name = movies.title 
    album_name = Album.objects.get(name__exact=name) 
    album_id = album_name.id 
    song_list = Song.objects.filter(album=album_id) 
    #image_path = generateWikiImage(image_name) 
    # 
    return render_to_response('base_movies.html',locals(), 
           context_instance=RequestContext(request) 
          ) 

나는 이것 같이 템플렛에서 시도했다. 이 <django.db.models.fields.related.ManyRelatedManager object at 0x024CBED0> 감사

답변

7

ManyRelatedManager 거기 ManyToMany 관계를 처리하는 것을 목적으로한다 (song 일부 Song 예이다). 찾고있는 객체 목록을 얻으려면 all() 메소드를 사용해야합니다.

이 경우 {{song_list.artist.all}}을 사용하면 템플릿에서 반복 할 수있는 QuerySet을 얻을 수 있습니다.

+0

고마워요. 그리고 이렇게 결과를 표시합니다. '[] '. SP 만 인쇄하고 싶습니다. Balasubramaniam' 가능합니까? 감사합니다 – Kulbir

+2

'[]'은 하나의 아티스트 객체가있는 목록입니다. 이름을 제대로 얻으려면이 목록의 내용을 반복하고'{{artist.name}} '을 사용하십시오 ({{song.artist.all %}의 아티스트 %}'). – bouteillebleu

3

ManyToManyField 같은 {{song_list.artist}}과 점점 메시지는 그래서 당신은 템플릿에서 바로 출력 할 수 없습니다, 검색어 세트를 보유하고 있습니다. 당신은 그것을 반복해야합니다. 이와 같이

<ul> 
{% for artist in song.artist.all %} 
    <li>{{ artist.name }}</li> 
{% endfor %} 
</ul> 
+0

감사합니다. 미안, 선택의 여지가 하나 뿐이야. – Kulbir

관련 문제