ผู้ดูแลระบบหลายรุ่น / มุมมองสำหรับรุ่นเดียวกันในผู้ดูแลระบบ Django
ฉันจะสร้างมากกว่าหนึ่ง ModelAdmin สำหรับรุ่นเดียวกันโดยแต่ละแบบกำหนดเองแตกต่างกันและเชื่อมโยงกับ URL ที่แตกต่างกันอย่างไร สมมติว่าฉันมีรุ่น Django ชื่อกระทู้ ตามค่าเริ่มต้นมุมมองผู้ดูแลระบบของรุ่นนี้จะแสดงรายการวัตถุโพสต์ทั้งหมด ฉันรู้ว่าฉันสามารถปรับแต่งรายการของวัตถุที่แสดงบนหน้าในรูปแบบต่างๆโดยการตั้งค่าตัวแปรเช่น list_display หรือแทนที่querysetวิธีการใน ModelAdmin ของฉันเช่น: 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) โดยค่าเริ่มต้นนี้จะสามารถเข้าถึงได้ที่ /admin/myapp/postURL อย่างไรก็ตามฉันต้องการมีหลายมุมมอง / ModelAdmins ของโมเดลเดียวกัน เช่น/admin/myapp/postจะแสดงรายการออบเจกต์ทั้งหมดและ/admin/myapp/mypostsจะแสดงรายการโพสต์ทั้งหมดที่เป็นของผู้ใช้และ/admin/myapp/draftpostอาจแสดงรายการโพสต์ทั้งหมดที่ยังไม่ได้เผยแพร่ (นี่เป็นเพียงตัวอย่างกรณีการใช้จริงของฉันซับซ้อนกว่า) คุณไม่สามารถลงทะเบียนมากกว่าหนึ่ง ModelAdmin สำหรับรุ่นเดียวกัน (ผลลัพธ์นี้มีAlreadyRegisteredข้อยกเว้น) เป็นการดีที่ฉันจะทำสิ่งนี้ให้สำเร็จโดยไม่ต้องใส่ทุกอย่างไว้ใน ClassAdmin ชั้นเดียวและเขียนฟังก์ชั่น 'urls' ของตัวเองเพื่อส่งคืนชุดสืบค้นที่แตกต่างกันขึ้นอยู่กับ URL ฉันเคยดูที่ Django …