2011-04-01 35 views
5

(kendi Kullanıcı/İzin modeli ile) kendi kimlik doğrulama ve yetkilendirme sistemi kullanıyorum çünkü ben tamamen Django bu standart uygulamayı devre dışı bırakmak istiyorum.Django.contrib.auth tamamen nasıl devre dışı bırakılır?

Ben MIDDLEWARE_CLASSES ve INSTALLED_APPS alakalı satırları silerek denedim ama syncdb komutunu kullandığınızda, varsayılan kimlik doğrulama sistemi ile gelen varsayılan tablolar hala oluşturuluyor. Bunun olmasını önlemek için bir yolu var mı? Asıl sorun, standart tabloların kendi auth sistemim için kullanmak istediğim tabloları geçersiz kılmasıdır.

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

Ayrıca, uygulamaların proje paketi ile hazırlanmasını da denedim, bunun hiçbir etkisi olmadı. Ben bakan değilim belki başka ayar

var mı? Bu standart uygulamaların çabalarıma rağmen etkin olmasına neden olabilecek diğer olası değişkenleri?

Ben de yerleşik yönetici sistemine, bu yüzden bir sorun olabilir sanmıyorum kullanmayın.

ek bilgiler: Geçenlerde 1.3 Django 1.2 yükselttiniz. Bu benim sorunumun sebebi olabilir mi?

Düzenleme: Görünüşe göre, bu konu Django 1.3 bir değişiklik neden olur. İlgili bilet buradadır: http://code.djangoproject.com/ticket/15735

Herhangi bir ipuçları?

+1

Tabloları daha önce yaptınız ./manage.py syncdb? – DTing

+0

Yaptım, tüm veritabanını sınama amacıyla bıraktım. Sadece varsayılan auth_user tablosunu oluşturmaya devam ediyor (kendimi kullanmak isterken). –

cevap

4

Kimlik doğrulama modülünün RequestContext tarafından çekildiğini düşünüyorum.

Varsayılan olarak, TEMPLATE_CONTEXT_PROCESSORS ayarı django.contrib.auth.context_processors.auth içeriyor.

Auth veritabanı tablolarını oluşturma konusunda django sorunum olmadı, ancak anonim modülleri benim bağlamdan kaldırıyordu ve oturumumu "kullanıcı" anahtarının altına yerleştirmekteydim. INSTALLED_APPS ve MIDDLEWARE_CLASSES ayarları.

Bu öğeyi TEMPLATE_CONTEXT_PROCESSORS öğesinden kaldırdım ve işler beklediğim şekilde çalışmaya başladı.

Durumunuzda 1.2'den 1.3'e yükseltmeniz, sınıf tabanlı genel görünümleri kullanmaya başlamanız anlamına gelebilir (bu da harika) veya belki de normal bağlam dicts yerine RequestContext'i kullanmaya başlamış olabilirsiniz. Her iki durumda da, auth, bir içerik işlemci olarak verildiğinde, django, aslında, ister istemediyseniz olsun olmasın, kurulu uygulamalarınızda olduğu gibi davranır.

Umarım bu bir yardımdır.

+0

Bu kadar geç bir cevabı kabul ettiğim için özür dilerim, ama yine de teşekkür ederim :) –

+0

Auth uygulamasını da kaldırmak istedim ve aracıları ortadan kaldırdıktan sonra hala hatayı alıyordum. Ayardaki şablon önişlemcisinden girişi kaldırıldı ve her şey şimdi sorunsuz çalışıyor! –

İlgili konular