У меня есть почти идентичный менеджер моделей для Thornomad, и та же проблема с общими представлениями.
Я должен отметить, что ни одно из предложенных выше предложений не работает:
- выполнение Video.objects.all без скобок выдает ошибку
- выполнение queryset.filter (pub_date__lte = datetime.utcnow), опять же без скобок, не выдает ошибку, но не решает проблему
Я также попробовал другой способ, который заключается в использовании лямбда-выражения для возврата набора запросов, например:
qs = lambda *x: Video.objects.all()
url(r'^video/(?P<object_id>\d+)$',
list_detail.object_detail,
{ 'queryset': qs(), },
name='video_detail',
),
... это тоже не сработало, и теперь я вижу, что, должно быть, отчаянно думал, что это сработает:)
lazy_qs = lambda *x: lazy(Post.live_objects.all, QuerySet)
blog_posts = {
'queryset': lazy_qs(),
... тоже не работает (выдает ошибку), поскольку utils.functional.lazy не знает, как правильно преобразовать результат в QuerySet, насколько я могу судить.
Я думаю, что ответ Роберто об обертывании универсального представления - единственный, который поможет.
В документы django следует внести изменения, чтобы указать на ограничения набора запросов, используемого общими представлениями (в настоящее время в документах есть специальное примечание, чтобы сообщить вам, что все будет хорошо!)