2011-10-21 21 views
9

मैं अपने django व्यवस्थापक अनुक्रमणिका में अतिरिक्त साइडबार प्रदर्शित करना चाहता हूं। मैंने templates/admin/index.html बनाया है और यह दिखाया गया है। अब मुझे मॉडल से कुछ डेटा चाहिए। फ़ाइल admin/views.pydjango व्यवस्थापक दृश्य का विस्तार कैसे करें?

def index(request): 
    var = 'var' 
    return render_to_response('admin/index.html', {'var': var}) 

में इस समारोह के बिना इस मैं सूचकांक समारोह बनाया है ऐसा करने के लिए मैं त्रुटि ViewDoesNotExist है।

हालांकि टेम्पलेट इस नमूना चर 'var' के लिए प्रतिक्रिया नहीं करता है। इसके अलावा मेरा ऐप इंडेक्स में प्रदर्शित नहीं होता है। मेरे पास केवल ऑथ ऐप है।

मुझे लगता है कि मैं इंडेक्स फ़ंक्शन फॉर्म एडमिन व्यू ओवरराइट कर रहा हूं। इस फ़ंक्शन को सही तरीके से ओवरराइट कैसे करें?

उत्तर

2

उपयोग करने पर विचार django व्यवस्थापक उपकरण https://bitbucket.org/izi/django-admin-tools/wiki/Home

तो आपको manage.py customdashboard, manage.py custommenu आदि जैसे आदेश प्राप्त होते हैं।

यहां कुछ वस्तुओं या सूची पृष्ठों पर त्वरित रूप से कूदने के लिए एक अच्छी बुकमार्क-कार्यक्षमता भी है।

8

इसके बजाय पूरी तरह से दृश्य को अधिलेखित करने के लिए, आप अपने ModelAdmin में विचारों को तर्क जोड़ सकते हैं (admin.py) वर्ग:

https://docs.djangoproject.com/en/dev/ref/contrib/admin/#other-methods

तो उदाहरण के लिए

:

class MyAdmin(admin.ModelAdmin) 
    ... 
    def add_view(self, request, form_url='', extra_context=None): 
     # Do some extra queries that will get passed to the template 
     c = {'x':SomeModel.objects.all()} 
     super(MyAdmin, self).add_view(request, extra_context=c) 
+1

अच्छा विचार लेकिन: add_view - "मॉडल उदाहरण उदाहरण पृष्ठ के लिए Django देखें।" मैं इंडेक्स पेज पर डेटा एक्सेस करना चाहता हूं, वहां कोई index_view विधि नहीं है – motivast