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
我有一个电影类型列表。每个流派都有自己的电影。例如,每种电影类型都有一个电影列表,但 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