2016-02-10 77 views
0

我想列出所有在電影模式是類型ForeignKey的相關對象說comedy類型列表中的所有影片對象相關comedyDjango的select_related FK模型

# models.py 
class Genre(models.Model): 
    name = models.CharField(max_length=80, unique=True) 
    slug = models.SlugField(unique=True) 

    def __unicode__(self): 
     return self.name 

    def get_absolute_url(self): 
     return reverse("genres:list", kwargs={"slug": self.slug}) 

class Movie(models.Model): 
    title = models.CharField(max_length=80) 
    genre = models.ForeignKey(Genre) 


# views.py 
def genre_list(request, slug): 
    instance = get_object_or_404(Genre, slug=slug) 
    movies = Movie.objects.select_related('genre').all() 

    context = { 
     "objects_list": movies, 
    } 
    return render(request, 'genres/genres_list.html', context) 

模板視圖genres/genres_list.html

{% for obj in objects_list %} 
       <div class="box"> 
        <b>{{ obj.title }}</b> 
      </div> 
{% endfor %} 

什麼都沒有變成我做錯了什麼?

+0

'「object_list」'不應該是'movies',而不是像你的代碼中的'shows'? – doru

回答

3

上下文中的變量名稱object_list與模板中的變量名稱objects_list不匹配。

context = { 
    "object_list": shows, 
} 

{% for obj in objects_list %} 

您需要在兩個地方使用相同的變量名。我會推薦object_list,因爲它在Django中更常見,但是像movies這樣的描述會更好。

最後,如果你想選擇特定類型的所有電影,那麼你應該使用filter

instance = get_object_or_404(Genre, slug=slug) 
movies = Movie.objects.filter(genre=instance) 

您正在用select_related,這確實不同的東西。

+0

感謝它現在的作品 – linski