第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Django管理員中同一模型的多個(gè)ModelAdmins /視圖

Django管理員中同一模型的多個(gè)ModelAdmins /視圖

桃花長(zhǎng)相依 2019-10-05 11:04:03
如何為同一個(gè)模型創(chuàng)建一個(gè)以上的ModelAdmin,每個(gè)ModelAdmin進(jìn)行不同的自定義并鏈接到不同的URL?假設(shè)我有一個(gè)稱為Posts的Django模型。默認(rèn)情況下,此模型的admin視圖將列出所有Post對(duì)象。我知道我可以通過設(shè)置變量(如list_display)或queryset在ModelAdmin中覆蓋方法來以各種方式自定義顯示在頁(yè)面上的對(duì)象列表:class MyPostAdmin(admin.ModelAdmin):    list_display = ('title', 'pub_date')    def queryset(self, request):        request_user = request.user        return Post.objects.filter(author=request_user)admin.site.register(MyPostAdmin, Post)默認(rèn)情況下,可以通過URL訪問/admin/myapp/post。但是我想擁有同一模型的多個(gè)視圖/ ModelAdmins。例如,/admin/myapp/post將列出所有帖子對(duì)象,并/admin/myapp/myposts列出屬于該用戶的/admin/myapp/draftpost所有帖子,并可能列出尚未發(fā)布的所有帖子。(這些只是示例,我的實(shí)際用例更加復(fù)雜)您不能為同一模型注冊(cè)多個(gè)ModelAdmin(這將導(dǎo)致AlreadyRegistered異常)。理想情況下,我希望不將所有內(nèi)容放入單個(gè)ModelAdmin類中并編寫自己的“ urls”函數(shù)以根據(jù)URL返回不同的查詢集來實(shí)現(xiàn)此目的。我看了看Django的源代碼,發(fā)現(xiàn)ModelAdmin.changelist_view我的urls.py中可能包含這樣的函數(shù),但是我不確定它是如何工作的。更新:我已經(jīng)找到一種實(shí)現(xiàn)自己想要的方式(見下文),但是我仍然想聽聽其他實(shí)現(xiàn)方式。
查看完整描述

3 回答

?
猛跑小豬

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊

保羅·斯通的答案是絕對(duì)好的!只需添加一下,對(duì)于Django 1.4.5,我需要繼承自定義類admin.ModelAdmin


class MyPostAdmin(admin.ModelAdmin):

    def queryset(self, request):

        return self.model.objects.filter(id=1)


查看完整回答
反對(duì) 回復(fù) 2019-10-05
  • 3 回答
  • 0 關(guān)注
  • 1381 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)