7

मेरे पास IsA प्रमाणीकृत पर एक सूची दृश्य सेट अनुमति सेट है, लेकिन जब मैंने गुप्त विंडो में यूआरएल मारा। मैं डेटा देखने में सक्षम हूं। हालांकि जब मैं IsAdmin की अनुमति सेट करता हूं, तो यह मुझे एक त्रुटि दिखाकर पूरी तरह से काम करता है। यहाँ मेरी serializerडीआरएफ प्रमाणीकृत काम नहीं कर रहा है

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' 
     ] 

है नीचे मेरे विचार

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

मिडिलवेयर सेटिंग्स

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] 

सेटिंग्स फ़ाइलें है जब मैं कैलोरी से उपयोगकर्ता तक पहुँचने का प्रयास BlogListAPIView पर ling get_object, यह एक त्रुटि फेंकता है JSON serializable नहीं है। किसी कारण से, मिडलवेयर उपयोगकर्ता के रूप में बेनामी यूज़र ले रहा है। यदि इसमें अज्ञात यूज़र लॉग इन है तो यह असफल प्रमाणीकृत अनुमति विफल हो जाएगी। यही हो रहा है (मुझे लगता है)। लेकिन मैं AnonymousUser लॉग आउट करने में सक्षम नहीं हूँ। बेनामी यूज़र का उपयोग क्यों किया जा रहा है और उसे कैसे लॉग आउट किया जाए?

+0

कृपया, सुनिश्चित करें कि आप प्रश्न स्पष्ट हैं। आप कहते हैं कि "यह पूरी तरह से काम करता है" तो वास्तविक समस्या क्या है? – Linovia

+0

क्या आपने सेटिंग.py में DEFAULT_AUTHENTICATION_CLASSES और DEFAULT_PERMISSION_CLASSES को परिभाषित किया है? क्या आप ये मान यहां डाल सकते हैं? –

+0

@ लिनोविया यह IsAdmin अनुमति के लिए पूरी तरह से ठीक काम करता है। –

उत्तर

3

निश्चित रूप से कुछ अन्य समस्याएं हैं जो आपके प्रश्न में सूचीबद्ध नहीं हैं। । मैं के टुकड़े के साथ एक नई परियोजना आपके द्वारा दी गई बनाया है और जब मैं प्रवेश किए बिना यूआरएल मारा http 401 मिल जाएगा मैं Github में कोड प्रदान की:

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

runserver और http://localhost:8000/blog

+0

क्या आप डीजे 1.9 का उपयोग करके परीक्षण कर सकते हैं, मुझे इस संस्करण में एक ही समस्या है? –

+0

मुझे लगता है कि यह कुछ मिडलवेयर मुद्दे से संबंधित है। @ अरमान की पोस्ट एक जवाब नहीं है। एक ताजा परियोजना के साथ, मुद्दा दूर हो जाएगा। लेकिन निश्चित रूप से, मैं इस परियोजना के ऐसे चरण में हूं जहां मैं परियोजना शुरू करने के लिए ताजा नहीं कर सकता। –

+0

@ निखिलशिरथ मेरे पास एक ही समस्या के साथ एक और परियोजना है, इसलिए मैंने बकाया –

1

मुद्दे पर ब्राउज़ करें Django 1.9 से Django 1.10 तक और डीआरएफ 3.3.7 का उपयोग करके अपग्रेड किया गया था।

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