2017-10-18 3 views
1

私は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セットを持っていることの

+0

あなたは*運とはどういう意味ですか*の?メソッドをどのように実装したかを確認する必要があります。特別な方法でカスタムマネージャーを検討しましたか? – styvane

+0

ちょうど質問が編集されました。基本的に私は、関数または自己が定義されていないことがわかります。 –

答えて

3

、Djangoはあなたが上書きできるビューで/ get_queryset方法を使用します。

class ArchiveView(YearArchiveView): 

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

     return custom_queryset 
+0

これは動作するようです! –

+1

実際はとても簡単です: 'get_queryset'の' self'の中にあるべきです。したがって、このメソッドでは、それを見つける: 'self.request'。 – White

関連する問題