2011-04-01 18 views
5

क्योंकि मैं अपने स्वयं के प्रमाणीकरण और प्रमाणीकरण प्रणाली (अपने स्वयं के उपयोगकर्ता/अनुमति मॉडल के साथ) का उपयोग कर रहा हूं, मैं Django से इस मानक ऐप को पूरी तरह से अक्षम करना चाहता हूं।django.contrib.auth को पूरी तरह अक्षम कैसे करें?

मैं MIDDLEWARE_CLASSES और INSTALLED_APPS से प्रासंगिक लाइनों को हटाने की कोशिश की है, लेकिन जब मैं syncdb आदेश का उपयोग करें, डिफ़ॉल्ट टेबल कि डिफ़ॉल्ट प्रमाणीकरण प्रणाली के साथ आते हैं अभी भी बनाए जा रहे हैं। क्या ऐसा होने से रोकने के लिए कोई तरीका है? मेरी मुख्य समस्या यह है कि मानक टेबल टेबल को ओवरराइड कर रहे हैं जिन्हें मैं अपने स्वयं के ऑथ सिस्टम के लिए उपयोग करना चाहता हूं।

INSTALLED_APPS = (
    'django.contrib.sessions', 
    'form_utils', 
    'org', 
    'auth', 
    'entities', 
) 

मैंने प्रोजेक्ट पैकेज के साथ ऐप्स को प्रीपेड करने का भी प्रयास किया है, इसका कोई प्रभाव नहीं पड़ा।

क्या कोई अन्य सेटिंग है जो मैं देख रहा हूं? अन्य संभव वेरिएबल्स जो मेरे प्रयासों के बावजूद इन मानक ऐप्स को सक्षम करने का कारण बन सकता है?

मैं अंतर्निहित व्यवस्थापक सिस्टम का भी उपयोग नहीं करता, इसलिए मुझे नहीं लगता कि कोई समस्या हो सकती है।

अतिरिक्त जानकारी: मैंने हाल ही में Django 1.2 से 1.3 को अपग्रेड किया है। क्या यह मेरी समस्या का कारण हो सकता है?

संपादित करें: जाहिर है, यह समस्या Django 1.3 में बदलाव के कारण हुई है। संबंधित टिकट यहां है: http://code.djangoproject.com/ticket/15735

कोई संकेत?

+1

क्या आपने पहले ./manage.py syncdb से पहले टेबल छोड़े थे? – DTing

+0

मैंने किया, मैंने परीक्षण उद्देश्यों के लिए भी संपूर्ण डेटाबेस गिरा दिया। यह सिर्फ डिफ़ॉल्ट auth_user तालिका बना रहा रहता है (जबकि मैं अपना खुद का उपयोग करना चाहता हूं)। –

उत्तर

4

मेरा मानना ​​है कि प्रमाणीकरण मॉड्यूल को RequestContext द्वारा खींचा जा रहा है।

डिफ़ॉल्ट रूप से, सेटिंग TEMPLATE_CONTEXT_PROCESSORS में django.contrib.auth.context_processors.auth शामिल है।

मुझे डीजेंगो को ऑथ डेटाबेस टेबल बनाने का मुद्दा नहीं था, लेकिन यह मेरे संदर्भ में एक अज्ञात यूज़र ऑब्जेक्ट और 'उपयोगकर्ता' कुंजी के तहत मेरा सत्र डालने वाला था, भले ही मैं अपने ऑथ मॉड्यूल को हटा दूंगा INSTALLED_APPS और MIDDLEWARE_CLASSES सेटिंग्स।

मैंने उस आइटम को TEMPLATE_CONTEXT_PROCESSORS से हटा दिया और चीजें जिस तरह से मैं उम्मीद कर रहा था उस पर काम करना शुरू कर दिया।

आपके मामले में 1.2 से 1.3 तक अपग्रेड का मतलब हो सकता है कि आपने क्लास-आधारित जेनेरिक दृश्य (जो कमाल हैं) का उपयोग करना शुरू किया है, या शायद आपने सामान्य संदर्भ डिक्ट्स के बजाय RequestContext का उपयोग शुरू किया है। किसी भी तरह से, ऐसा लगता है कि जब ऑथ को संदर्भ प्रोसेसर के रूप में दिया जाता है, तो django व्यवहार करता है जैसे कि आपके इंस्टॉल किए गए ऐप्स में ऑथ थे, चाहे आप वास्तव में वहां चाहते थे या नहीं।

मुझे आशा है कि यह सहायता की है।

+0

मेरी प्रतिक्रिया बहुत देर से स्वीकार करने के लिए माफ़ी है, लेकिन फिर भी धन्यवाद :) –

+0

मैं एथ ऐप को भी हटाना चाहता था, और बीच के लोगों को हटाने के बाद भी मुझे त्रुटि मिल रही थी। सेटिंग में टेम्पलेट प्रीप्रोसेसर से प्रविष्टि को हटा दिया गया और सब कुछ सुचारू रूप से चलता है! –

संबंधित मुद्दे