如何使用函数将结果传递给' queryset'?

时间:2017-10-18 18:44:12

标签: python django class django-queryset

我正在研究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单独调用它,但我得到functionself未定义。

我在哪里定义函数/方法?

如何将其传递给queryset

1 个答案:

答案 0 :(得分:3)

在Django视图中,您可以覆盖/使用queryset方法,而不是设置get_queryset

class ArchiveView(YearArchiveView):

    def get_queryset(self):
        ...magic here...

        return custom_queryset