Generic View

GenericAPIVIew是所有的Generic View的基類,通過組合mixin來構(gòu)建不同的Generic View酌心。

GenericAPIVIew

屬性

queryset

該屬性不應(yīng)該直接使用 否則該queryset在一次實例化后會cache數(shù)據(jù) 應(yīng)該使用get_queryset方法

serializer_class

用于驗證和逆序列化和序列化的serializer類 重載該屬性或get_serializer_class方法

lookup_field

默認(rèn) pk

lookup_url_kwarg

默認(rèn)和lookup_field相同

pagination_class

filter_backends

方法

get_querysest

get_object

    queryset = self.filter_queryset(self.get_queryset())
    lookup_url_kwarg = self.lookup_url_kwarg or self.lookup_field
    obj = get_object_or_404(queryset, **filter_kwargs)
    self.check_object_permissions(self.request, obj)

filter_queryset

get_serializer get_serializer_class get_serializer_context

paginator get_paginated_response paginate_queryset

mixins

ListModeMixin

提供了list方法

    queryset = self.filter_queryset(self.get_queryset())
    page = self.paginate_queryset(queryset)
    if page is not None:
        serializer = self.get_serializer(page, many=True)
        return self.get_paginated_response(serializer.data)

    serializer = self.get_serializer(queryset, many=True)
    return Response(serializer.data)

CreateModelMixin

提供了create方法

    serializer = self.get_serializer(data=request.data)
    serializer.is_valid(raise_exception=True)
    self.perform_create(serializer)

重載時可只重載perform_create墩崩,默認(rèn)實現(xiàn)為調(diào)用serializer.save()

RetrieveModelMixin

提供了retrieve方法 單個對象返回

UpdateModelMixin

提供了update方法 partial_update方法 可以只重載perform_update方法

DestroyModelMixin

提供了destroy方法 可以只重載perform_destroy方法f

具體類

CreateAPIView(mixins.CreateModelMixin, GenericAPIView) post

ListAPIView(mixins.ListModelMixin, GenericAPIView) get

RetrieveAPIView(mixins.RetrieveModelMixin, GenericAPIView) get

DestroyAPIView(mixins.DestroyModelMixin, GenericAPIView) delete

UpdateAPIView(mixins.UpdateModelMixin, GenericAPIView)

put->update patch->partial_update

ListCreateAPIView(mixins.ListModelMixin, mixins.CreateModelMixin, GenericAPIView)

RetrieveUpdateAPIView(mixins.RetrieveModelMixin, mixins.UpdateModelMixin,GenericAPIView)

RetrieveDestroyAPIView(mixins.RetrieveModelMixin, mixins.DestroyModelMixin, GenericAPIView)

RetrieveUpdateDestroyAPIView(mixins.RetrieveModelMixin, mixins.UpdateModelMixin, mixins.DestroyModelMixin, GenericAPIView)

源碼實現(xiàn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鹦筹,一起剝皮案震驚了整個濱河市址貌,隨后出現(xiàn)的幾起案子徘键,更是在濱河造成了極大的恐慌吹害,老刑警劉巖虚青,帶你破解...
    沈念sama閱讀 223,126評論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異钟些,居然都是意外死亡绊谭,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評論 3 400
  • 文/潘曉璐 我一進店門篙耗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宗弯,“玉大人搂妻,你說我怎么就攤上這事〉瞬蓿” “怎么了扁瓢?”我有些...
    開封第一講書人閱讀 169,941評論 0 366
  • 文/不壞的土叔 我叫張陵,是天一觀的道長昧互。 經(jīng)常有香客問我伟桅,道長,這世上最難降的妖魔是什么玖雁? 我笑而不...
    開封第一講書人閱讀 60,294評論 1 300
  • 正文 為了忘掉前任民褂,我火速辦了婚禮赊堪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘哭廉。我一直安慰自己遵绰,他們只是感情好辽幌,可當(dāng)我...
    茶點故事閱讀 69,295評論 6 398
  • 文/花漫 我一把揭開白布乌企。 她就那樣靜靜地躺著成玫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪猪腕。 梳的紋絲不亂的頭發(fā)上钦勘,一...
    開封第一講書人閱讀 52,874評論 1 314
  • 那天彻采,我揣著相機與錄音,去河邊找鬼肛响。 笑死终惑,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的雹有。 我是一名探鬼主播,決...
    沈念sama閱讀 41,285評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼溜宽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了质帅?” 一聲冷哼從身側(cè)響起适揉,我...
    開封第一講書人閱讀 40,249評論 0 277
  • 序言:老撾萬榮一對情侶失蹤留攒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后嫉嘀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體炼邀,經(jīng)...
    沈念sama閱讀 46,760評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,840評論 3 343
  • 正文 我和宋清朗相戀三年剪侮,在試婚紗的時候發(fā)現(xiàn)自己被綠了拭宁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,973評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡瓣俯,死狀恐怖杰标,靈堂內(nèi)的尸體忽然破棺而出彩匕,到底是詐尸還是另有隱情腔剂,我是刑警寧澤,帶...
    沈念sama閱讀 36,631評論 5 351
  • 正文 年R本政府宣布驼仪,位于F島的核電站掸犬,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏谅畅。R本人自食惡果不足惜登渣,卻給世界環(huán)境...
    茶點故事閱讀 42,315評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望毡泻。 院中可真熱鬧胜茧,春花似錦、人聲如沸仇味。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽丹墨。三九已至廊遍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間贩挣,已是汗流浹背喉前。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評論 1 275
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留王财,地道東北人卵迂。 一個月前我還...
    沈念sama閱讀 49,431評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像绒净,于是被迫代替她去往敵國和親见咒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,982評論 2 361

推薦閱讀更多精彩內(nèi)容