【发布时间】:2014-07-25 08:26:58
【问题描述】:
我正在尝试使用 get_queryset() 过滤模型,它似乎在视图中有效,但在模板中无效。
我的看法:
class FolderCreate(CreateView):
fields = ['name', 'parent']
template_name = 'Form/folder_create.html'
def get_queryset(self):
folders = Folder.objects.filter(owner=self.request.user)
print folders # ==> return [<Folder: Folder>, <Folder: Another folder>]
return folders
def form_valid(self, form):
self.object = form.save(commit=False)
self.object.owner = self.request.user
return super(FolderCreate, self).form_valid(form)
def get_initial(self):
if self.request.method == 'GET':
foldersUrl = self.request.META['HTTP_REFERER'].split('/')
foldersUrl.pop()
folder = urllib2.unquote(foldersUrl[-1])
try:
return {'parent' : Folder.objects.get(name=folder, owner=self.request.user)}
except Folder.DoesNotExist:
pass
如您所见,文件夹在 get_queryset() 中返回两个与会话用户相关的对象:“文件夹”和“另一个文件夹”
幸运的是,我的模板的组合框获取了所有文件夹,没有任何过滤。
有什么想法吗?
【问题讨论】:
-
这是你的实际缩进,还是复制粘贴错误?
-
不抱歉,这是复制粘贴错误,所有函数都在类中。
-
缩进现已修复。
标签: django django-templates django-views