Django 查询集返回空 '[]'

Django Queryset Returning Empty '[]'

我有一个电影类型列表。每个流派都有自己的电影。例如,每种电影类型都有一个电影列表,但 object_list 是空的。

github link: https://github.com/AdebayoAnuoluwapo/imdb-original.git

我的看法:

class MovieCategory(ListView):
    model = Movie
    paginate_by = 2

    def get_queryset(self):
        self.category = self.kwargs['category']
        return Movie.objects.filter(category=self.category)

    def get_context_data(self , **kwargs):
        context = super(MovieCategory , self).get_context_data(**kwargs)
        context['movie_category'] = self.category
        print(context)
        return context

我的模特:

ACTION = 'action'

DRAMA = 'drama'

COMEDY = 'comedy'

ROMANCE = 'romance'

CATEGORY_CHOICES = (
    (ACTION, 'Action'),
    (DRAMA, 'Drama'),
    (COMEDY, 'Comedy'),
    (ROMANCE, 'Romance'),
)

class Movie(models.Model):
    title = models.CharField(max_length=200)
    description = models.TextField(max_length=2000)
    image = models.ImageField(upload_to='movies')
    category = models.CharField(choices=CATEGORY_CHOICES, max_length=10)
    language = models.CharField(choices=LANGUAGE_CHOICES, max_length=7)
    status = models.CharField(choices=STATUS_CHOICES, max_length=2)
    cast = models.CharField(max_length=100) 
    year_of_production = models.DateField()
    views_count = models.IntegerField(default=0)

    def __str__(self):
        return self.title 

  

我的网址:

from django.urls import path

from . import views

app_name = 'movie'

    urlpatterns = [
    path('', views.HomeView.as_view(), name='home'),
    path('list/', views.MovieListView.as_view(), name='movie_list'),
    path('category/<str:category>', views.MovieCategory.as_view() , name='movie_category'),
    path('language/<str:lang>', views.MovieLanguage.as_view(), name='movie_language'),
    path('search/', views.MovieSearch.as_view() , name='movie_search'),
    path('<int:pk>/', views.MovieDetailView.as_view(), name='movie_detail'),   
]

当我打印(上下文)时,我得到

'object_list': <QuerySet []>, 
'movie_list': <QuerySet []>

提前致谢...

我已经解决了。 我忘了添加 context_object_name

class MovieCategory(ListView):
model = Movie
paginate_by = 2
context_object_name = 'movies'

def get_queryset(self,**kwargs):
    self.category = self.kwargs['category']
    return Movie.objects.filter(category=self.category)


def get_context_data(self , **kwargs):
    context = super(MovieCategory,self).get_context_data(**kwargs)
    context['movie_category'] = self.category
    return context