2011-02-12 20 views
6

मेरे व्यवस्थापक विषय के लिए django-grappelli का उपयोग करने का प्रयास कर रहा है, इंस्टॉल आश्चर्यजनक रूप से चुनौतीपूर्ण रहा है। मेरी urls.py में निम्नलिखित में चल रहा है:Django NameError [ऐप नाम] परिभाषित नहीं किया गया है

NameError .. name 'grappelli' is not defined 

त्रुटि लाइन पर फेंक दिया जाता है पिप के साथ

(r'^grappelli/', include(grappelli.urls)) 

स्थापित grappelli, और grappelli अपनी साइटों-संकुल निर्देशिका में है। मेरे INSTALLED_APPS में जोड़ा गया, syncdb चला गया, मेरे पायथनपैथ में grappelli जोड़ने की कोशिश की, लेकिन कोई भाग्य नहीं है। अगर मैं urls.py में grappelli आयात करता हूं तो त्रुटि AttributeError - 'module' has no attribute 'urls'

सुझावों या किसी भी प्रकार की सहायता की अत्यधिक सराहना की जाती है।

उत्तर

17

लाइन पढ़ना चाहिए:

(r'^grappelli/', include('grappelli.urls')) 

include या तो एक यूआरएल मॉड्यूल के लिए एक रास्ता लेता है या यह एक अजगर ऑब्जेक्ट कि url प्रतिमानों http://docs.djangoproject.com/en/dev/topics/http/urls/#include

तो अपने पास दो विकल्प या तो लाइन कर रहे हैं हो सकता है उपरोक्त (यूआरएल के लिए पथ) या

from grappelli.urls import urlpatterns as grappelli_urls 

(r'^grappelli/', include(grappelli_urls)), 

त्रुटि के लिए, यह सबसे सीधे आगे की ओर से एक है पाइथन में ओएस डीबग करने के लिए: grappelli परिभाषित नहीं किया गया है, जैसा कि .. में परिभाषित नहीं किया गया है।

कल्पना कीजिए खोल में किया जा रहा है:

>>> print grappelli 
exception: variable undefined 
>>> grappelli = 'hello' # we just defined grappelli 
>>> print grappelli 
'hello' 
+0

धन्यवाद @Yuji - मैं विश्वास नहीं कर सकता मुझे लगता है कि कोशिश नहीं की। ऐसा लगता है कि यह स्पष्ट होना चाहिए, लेकिन जब मैं गैपरपेली आयात करता हूं तो मुझे कोई परेशानी नहीं मिली। मेरे install_apps में grappelli जोड़ने का मानना ​​था कि मुझे उस ऑब्जेक्ट को चर के रूप में एक्सेस किया गया। जैसे ही यह मुझे चलेगा स्वीकार करेंगे। – jonathanatx

+0

एनपी! मैंने नोटिस किया कि ग्रैपेलि डॉक्स आपको सुझाव देता है कि 'शामिल करें (grappelli.urls) ':) गलत। –

+0

'grappelli.urls' के आस-पास के उद्धरणों को इंगित करना महत्वपूर्ण है जो इस मुद्दे को हल करता है ... किसी भी कारण से। – tufelkinder

10

मुझे लगता है इस वर्ष से पुरानी है, लेकिन यह गूगल पर शीर्ष परिणाम जब मैं इस एक ही समस्या हो रही थी से एक था।

बल्कि grapelli.urls से urlpatterns आयात करने से, आप भी() बयान

(r'^grappelli/', include(grappelli.urls)) 

(r'^grappelli/', include('grappelli.urls')) 

को बदल सकते हैं को शामिल यह मैं हूँ और साथ ही एक बिट के लिए बाहर फेंक जब तक मैंने देखा है शामिल कथन में package.urls उद्धृत करने की आवश्यकता है।

1

आप urls.py में निम्नलिखित आयात करने के लिए चाहते हो सकता है:

from django.conf.urls import include 
1

जब आपके मार्गों घोषणा करते हुए आप एक अभिव्यक्ति उद्धृत करने के लिए भूल गया था।

grappelli.urls'grappelli.urls' को इसे काम करने के लिए बदलें 0!

सही सिंटैक्स तो होगा:

(r'^grappelli/', include('grappelli.urls')) 
संबंधित मुद्दे