Фильтрация модели в CreateView с помощью get_queryset
Я пытаюсь отфильтровать модель с помощью 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 () папки возвращают два объекта, связанных с пользователем сеанса: «Папка» и «Другая папка».
К сожалению, в поле со списком моего шаблона попадают все папки, без какой-либо фильтрации.
Любая идея ?