我正在研究Python / Django项目。我必须使用 YearArchiveView 基类,所以我有这个:
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,而不是queryset = ArticlePage.objects.all()
。类似的东西:
queryset = getQuerySet()
同时我必须传递一些参数。
我尝试在类中定义函数,并使用self
单独调用它,但我得到function
或self
未定义。
我在哪里定义函数/方法?
如何将其传递给queryset
?
答案 0 :(得分:3)
在Django视图中,您可以覆盖/使用queryset
方法,而不是设置get_queryset
:
class ArchiveView(YearArchiveView):
def get_queryset(self):
...magic here...
return custom_queryset