Gas*_*sim 7 python django django-rest-framework
我试图建立一个系统Django,而无需使用任何电池- auth,admin等系统使用Django的API REST框架。
但是,当我尝试请求 API 时,我不断收到此错误:
Model class django.contrib.auth.models.Permission doesn't declare an explicit
app_label and isn't in an application in INSTALLED_APPS.
Run Code Online (Sandbox Code Playgroud)
我根本不想使用django.contrib.auth。我在 DRF API View 类中执行了以下操作:
class NewsPostView(APIView):
permission_classes = None
def get(self, request, format=None):
posts = NewsPost.objects.all()
serializer = NewsPostSerializer(posts, many=True)
return Response([])
Run Code Online (Sandbox Code Playgroud)
但是,我仍然遇到相同的错误。如何从 DRF 禁用身份验证?
我已经解决了我的问题。在@Linovia 的回复之后,我检查了 DRF 的文档等并更改了以下属性:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [],
'DEFAULT_PERMISSION_CLASSES': [],
'UNAUTHENTICATED_USER': None,
}
Run Code Online (Sandbox Code Playgroud)
一切都奏效了。
使用AllowAny而不是None. 而且您的回复似乎返回空列表。用于serializer.data检索数据
from rest_framework.permissions import AllowAny
class NewsPostView(APIView):
permission_classes = (AllowAny,)
def get(self, request, format=None):
posts = NewsPost.objects.all()
serializer = NewsPostSerializer(posts, many=True)
return Response(data=serializer.data)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3739 次 |
| 最近记录: |