7

IsAuthenticated olarak ayarlanmış bir ListView kümesi iznim var, ancak Incognito penceresinde URL'ye dokunduğumda. Verileri görüntüleyebiliyorum. IsAdmin iznini ayarladığım halde, bana bir hata göstererek mükemmel şekilde çalışır. İşte cal kullanıcıyı erişmeye çalıştığınızda Aşağıda benim bakışDRF Çalıştırılmadı

REST_FRAMEWORK = { 
    'DEFAULT_PERMISSION_CLASSES': (
     'rest_framework.permissions.IsAuthenticated', 
    ), 
    'DEFAULT_AUTHENTICATION_CLASSES': (
     'rest_framework.authentication.BasicAuthentication', 
     'rest_framework.authentication.SessionAuthentication', 
    ) 
} 

Ara Katman ayarları

MIDDLEWARE_CLASSES = [ 
'django.middleware.security.SecurityMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.common.CommonMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
'django.middleware.clickjacking.XFrameOptionsMiddleware', 
] 

from rest_framework.permissions import IsAuthenticated 

class BlogListAPIView(ListAPIView): 
    queryset = Blog.objects.filter(publish=True, draft=False) 
    serializer_class = BlogListSerializer 
    permission_classes = [IsAuthenticated] 

Ayarlar dosyaları benim serileştirici

class BlogListSerializer(ModelSerializer): 
    url = HyperlinkedIdentityField(
    view_name="blog_api:post_detail", 
    lookup_field="slug" 
    ) 
    class Meta: 
     model = Blog 
     fields = [ 
      'url', 
      'title', 
      'category', 
      'date', 
      'publish', 
      'draft' 
     ] 

olduğunu BlogListAPIView üzerinde ling get_object, bir hata atar JSON serileştirilebilir değil. Bazı nedenlerden dolayı, middleware bir Kullanıcı olarak AnonymousUser kullanıyor. Anonim Kullanıcı giriş yapmışsa, IsAuthenticated izni başarısız olur. Olan şey budur (sanırım). Ama ben AnonymousUser oturumunu alamıyorum. Niçin AnonymousUser erişilir ve Onu nasıl günlüğe kaydederim?

+0

Lütfen sorunuzun açık olduğundan emin olun. "Mükemmel çalışıyor" diye soruyorsunuz, gerçek sorun ne? – Linovia

+0

, settings.py dosyasında DEFAULT_AUTHENTICATION_CLASSES & DEFAULT_PERMISSION_CLASSES tanımladınız mı? Bu değerleri buraya koyabilir misin? –

+0

@Linovia IsAdmin İzni için mükemmel çalışıyor. –

cevap

3

Sorunuzda listelenmeyen başka sorunlar da var. . Sağladığınız snippet'leriyle taze proje hazırlandı ve giriş yapmadan URL'yi vurduğunda http 401 alacak ben Github kodları sağlanan:

https://github.com/Rmaan/pastebin/tree/so-47596482

runserver almak ve http://localhost:8000/blog

+0

dj 1.9'u kullanarak test edebiliyor musunuz, bu sürümde aynı sorunu yaşıyorum? –

+0

Sanırım bazı ara katman sorunları ile ilgilidir. @ Arman'ın yazı bir cevap değil. Yeni bir proje ile sorun ortadan kalkacak. Ama kesinlikle, projenin yeni başlangıcına yetişemediğim projenin böyle bir aşamasındayım. –

+0

@NikhilShirsath Aynı problemle başka bir projem var, bu yüzden size –

1

sorunu göz Django 1.9'dan Django 1.10'a ve DRF 3.3.7 kullanılarak yükseltildi.