【发布时间】:2015-07-23 10:56:37
【问题描述】:
基于 Django 类的视图非常初学者。 我有一个运行良好但显示所有对象的 ListView。我想过滤这个,在这里我做了什么,下面找到了一些例子:
models.py:
class FolderElement(TimeStampedModel):
user = models.ForeignKey(settings.AUTH_USER_MODEL)
class FolderMedia(TimeStampedModel):
folder_element = models.ForeignKey(FolderElement)
file = models.FileField(upload_to=generate_filepath_folder)
slug = models.SlugField(max_length=50, blank=True)
views.py:
class FolderMediaListView(ListView):
model = FolderMedia
template_name = "book.html"
def get_queryset(self):
self.folder_element = get_object_or_404(FolderElement,
pk=self.kwargs['pk'])
return FolderMedia.filter(folder_element=self.folder_element)
def render_to_response(self, context, **response_kwargs):
files = [ serialize(p) for p in self.get_queryset() ]
data = {'files': files}
response = JSONResponse(data, mimetype=response_mimetype(self.request))
response['Content-Disposition'] = 'inline; filename=files.json'
return response
但是现在我重写了get_queryset() 方法,我不明白我应该如何将pk 参数注入视图以便过滤器工作。目前,使用 pdb,我可以看到 self.kwargs 等于 {} 进入 get_queryset() 方法。
谢谢。
【问题讨论】:
标签: python django django-class-based-views