如何使用函数将结果传递给'queryset'?
问题描述:
我正在开发一个Python/Django项目。我必须使用YearArchiveView基类,所以我有这样的:如何使用函数将结果传递给'queryset'?
class ArchiveView(YearArchiveView):
queryset = ArticlePage.objects.all()
make_object_list = True
date_field = 'date'
template_name='btcmag/pages/archives_list.html'
allow_future = False
context_object_name = 'articles'
def extract_month(self, article):
'extracts the starting date from an entity'
return article.date.month
def extract_year(self, article):
'extracts the starting date from an entity'
return article.date.year
而不必queryset = ArticlePage.objects.all()
的,我想有一个函数返回正确的查询集。喜欢的东西:
queryset = getQuerySet()
同时我有一些参数来传递。
我试着在类中定义函数,用self
和单独调用它,但是我得到function
或self
未定义。
我该在哪里定义函数/方法?
如何将它传递给queryset
?
答
而不必queryset
组,在Django视图可以覆盖/使用get_queryset
方法:
class ArchiveView(YearArchiveView):
def get_queryset(self):
...magic here...
return custom_queryset
+0
这似乎工作! –
+1
其实很简单:它应该在'get_queryset'的'self'内。所以在这个方法中你可以找到它:'self.request'。 – White
你是什么意思*没有运气的意思是*?我们需要看看你是如何实现你的方法的。您是否考虑过使用额外方法的自定义管理器? – styvane
刚编辑的问题。基本上我知道这个函数或自我没有定义。 –