2017-09-30 42 views
-2

這是一個來自Django本身的代碼。一個bug或不是bug(get_paginate_by)

請注意,該方法中沒有使用queryset。

嗯,我甚至無法想象它如何在這裏使用。

你能告訴我這是不是一個錯誤?如果是這樣,我可以在Djangoproject上打一張票。

如果這不是一個bug,我們應該在評論中澄清這個參數的目的。在這種情況下,我也可以提出一張票。

或者一切都還好嗎?

的Django /視圖/通用/ list.py

class MultipleObjectMixin(ContextMixin): 

    def get_paginate_by(self, queryset): 
     """ 
     Get the number of items to paginate by, or ``None`` for no pagination. 
     """ 
     return self.paginate_by 
+0

這只是方法的接口定義 - 您*可以*使用查詢集,但不是*必填*到。每[文檔](https://docs.djangoproject.com/en/1.11/ref/class-based-views/mixins-multiple-object/):*「默認情況下,這只是返回paginate_by的值*。 – jonrsharpe

+0

那麼,它爲什麼在這裏?如果這裏有必要,就讓它成爲。但我寧願明確目的。如果它沒用,它應該從界面中刪除,不是嗎? – Michael

+0

這個對話確實屬於Django bugtracker,不在這裏。 – JJJ

回答

1

試想一下,如果你想擴展MultipleObjectMixin,你會希望你的默認實現有,你可以重寫,將讓你出的複製方法 - 基礎方法核心代碼。

如果您考慮一下,如果思考不對其進行擴展,那麼返回已經設置的值的方法沒有多大意義。

在這種情況下,Mixin的創建者認爲在擴展跟隨函數的某些用例中可能需要queryset。