আমি কীভাবে একই মডেলের জন্য একাধিক মডেলএডমিন তৈরি করতে পারি, প্রত্যেকটি আলাদা আলাদাভাবে কাস্টমাইজ করা হয় এবং বিভিন্ন ইউআরএলতে লিঙ্ক থাকে?
ধরা যাক আমার কাছে পোস্টস নামে একটি জ্যাঙ্গো মডেল রয়েছে। ডিফল্টরূপে, এই মডেলের অ্যাডমিন ভিউ সমস্ত পোস্ট অবজেক্টের তালিকা করে।
আমি জানি যে আমি তালিকাতে_ডিসপ্লে বা queryset
আমার মডেলএডমিনে পদ্ধতিটিকে ওভাররাইডের মতো তালিকা পরিবর্তন করে বিভিন্নভাবে পৃষ্ঠায় প্রদর্শিত সামগ্রীর তালিকাটি কাস্টমাইজ করতে পারি :
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)
ডিফল্টরূপে, এটি URL- এ অ্যাক্সেসযোগ্য হবে /admin/myapp/post
। তবে আমি একই মডেলের একাধিক মতামত / মডেলএডমিনস রাখতে চাই। উদাহরণস্বরূপ /admin/myapp/post
সমস্ত পোস্ট অবজেক্টের /admin/myapp/myposts
তালিকা তৈরি করে এবং ব্যবহারকারীর /admin/myapp/draftpost
সমস্ত পোস্টের তালিকা তৈরি করে এবং এখনও প্রকাশিত হয়নি এমন সমস্ত পোস্টের তালিকা তৈরি করতে পারে। (এগুলি কেবল উদাহরণ, আমার আসল ব্যবহারের ক্ষেত্র আরও জটিল)
আপনি একই মডেলের জন্য একাধিক মডেলএডমিন নিবন্ধন করতে পারবেন না (এটি একটি AlreadyRegistered
ব্যতিক্রমের ফলাফল )। আদর্শভাবে আমি একক মডেলএডমিন ক্লাসে সবকিছু না ফেলে এবং ইউআরএলের উপর নির্ভর করে একটি ভিন্ন ক্যোয়ারসেট ফিরিয়ে দেওয়ার জন্য আমার নিজের 'ইউআরএল' ফাংশন না লিখে এটি অর্জন করতে চাই ।
আমি জ্যাঙ্গো উত্সটি দেখেছি এবং আমি দেখতে পেয়েছি ModelAdmin.changelist_view
যে এর মতো ফাংশনগুলি আমার urls.py এ কোনওভাবে অন্তর্ভুক্ত থাকতে পারে তবে আমি ঠিক জানি না কীভাবে এটি কার্যকর হবে।
আপডেট : আমি যা চাই তার করার একটি উপায় খুঁজে পেয়েছি (নীচে দেখুন), তবে আমি এখনও এটি করার অন্যান্য উপায়গুলি শুনতে চাই।