私はListViewのアクセス許可がIsAuthenticatedに設定されていますが、シークレットウィンドウでそのURLにヒットしました。私はデータを見ることができます。 IsAdminにアクセス許可を設定すると、エラーが表示されて完全に機能します。 は、ここで私はCALによって、ユーザーにアクセスしようとすると以下の私のビューがDRF IsAuthenticatedが機能しない
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]
設定ファイルである私のシリアライザ
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'
]
ですBlogListAPIViewでget_objectを呼び出すと、JSONシリアライズ可能ではないというエラーがスローされます。何らかの理由で、ミドルウェアがAnonymousUserをユーザーとして取得しています。 AnonymousUserがログインしている場合は、IsAuthenticated権限に失敗します。それは起こっていることです(私は推測します)。しかし、私はAnonymousUserをログアウトできません。 なぜAnonymousUserにアクセスしていて、彼をログアウトするには?
ご不明な点がございましたら、ご確認ください。あなたは "それは完璧に動作する"と述べているので、実際の問題は何ですか? – Linovia
settings.pyにDEFAULT_AUTHENTICATION_CLASSES&DEFAULT_PERMISSION_CLASSESを定義しましたか?あなたはそれらの値をここに入れることができますか? –
@Linovia IsAdmin Permissionのために完全に正常に動作します。 –