python - Django:我们可以在 DRF 中强制执行 POST 请求而不需要 csrftoken 吗?
问题描述
我正在post commenting
使用 DRF 中实现一种机制ListCreateAPIView
。使用 ReactJS,我想允许匿名访问者对帖子发表评论。csrftoken
只有在可用时我才能这样做(这意味着用户必须登录csrftoken
才能使用)。
但我想强制对未经身份验证的用户/匿名网站访问者发表评论。你们知道有什么方法可以做到这一点,也许不需要csrftoken。或者如果确实需要令牌,有没有办法在不依赖 Django 的身份验证过程的情况下生成它?
我知道 Django 我非常需要我正在开发的这个功能的方向。
谢谢一堆!
视图.py
class APIListCreate__PostComment(generics.ListCreateAPIView):
queryset = PostComment.objects.all().order_by('-created_at')
serializer_class = PostCommentSerializer
permission_classes = [permissions.AllowAny]
pagination_class = None
filter_backends = (DjangoFilterBackend,)
filterset_class = APICustomFilter__PostComment
def get_queryset(self):
# this code block aims to paginate result
# when 'pagination=True' query param is detected in the URL
if self.request.query_params.get('pagination'):
if self.request.query_params.get('pagination') == 'True':
self.pagination_class = APIPagination
return self.queryset
def perform_create(self, serializer):
serializer.save(user=self.request.user)
DRF 设置
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
'rest_framework.permissions.IsAuthenticatedOrReadOnly',
),
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication',
'rest_framework.authentication.SessionAuthentication',
]
}
解决方案
推荐阅读
- java - 如何在 Spring Boot Java 中运行多个侦听器?
- spring - IntegrationMBeanExporter.stopActiveComponents() 与 gcp pub/sub 生产者一起抛出大量 InterruptedExceptions
- python - 列表中特定列表元素的 Sumproduct
- jenkins - 是否可以在辅助方法或共享库中定义 Jenkins 声明性管道的阶段?
- jira - 在 Jira 描述/评论中添加指向图像附件的链接而不显示缩略图
- grpc - 如何使 Blazor 页面使用来自 gRPC 服务的传入数据更新一个 html 标记的内容
- reactjs - 来源已被 CORS 策略 Spring boot 和 React 阻止
- ruby-on-rails - 检查在 Rails Capybara 中可见不到一秒的元素可见性
- javascript - 为什么我无法使用 AJAX 更新我的 sql 数据库?
- javascript - 如何在 React-js 中为捕获阶段注册事件处理程序?