我收到错误消息:rest_framework.request.WrappedAttributeError:'CSRFCheck'对象没有属性'process_request' [英] I am getting an error : rest_framework.request.WrappedAttributeError: 'CSRFCheck' object has no attribute 'process_request'

查看:269
本文介绍了我收到错误消息:rest_framework.request.WrappedAttributeError:'CSRFCheck'对象没有属性'process_request'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

urls.py

from django.conf.urls import url
from django.contrib import admin 
from django.conf import settings 
from django.conf.urls.static import static 
from .views import home 
from posts.views import PostListView 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls),
    url(r'^$', PostListView.as_view(), name='home'), 
    url(r'^post/', include('posts.urls', namespace='post')), 
    url(r'^api/post/', include('posts.api.urls', namespace='post-api')), 
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

api / views.py

api/views.py

from rest_framework import generics

from posts.models import Post
from .serializers import PostModelSerializer

class PostListAPIView(generics.ListAPIView):
    serializer_class = PostModelSerializer

    def get_queryset(self):
        return Post.objects.all()

api / serializers.py

api/serializers.py

from rest_framework import serializers
from posts.models import Post

class PostModelSerializer(serializers.ModelSerializer):
    class Meta:
        model = Post
        field = [
            'user',
            'content'
        ]

api / urls.py

api/urls.py

from django.conf.urls import url
# from django.contrib import admin

# from django.conf import settings
# from django.conf.urls.static import static
# from .views import home

from .views import PostListAPIView
from django.views.generic.base import RedirectView


urlpatterns = [
    # url(r'^(?P<pk>\d+)/update/$', PostUpdateView.as_view(), name='update'),
    # url(r'^(?P<pk>\d+)/delete/$', PostDeleteView.as_view(), name='delete'),
    # url(r'^(?P<pk>\d+)/$', PostDetailView.as_view(), name='detail'),
    url(r'^$', PostListAPIView.as_view(), name='list'), #/api/tweet
    # url(r'^$', RedirectView.as_view(url='/')),
    # url(r'^create/$', PostCreateView.as_view(), name='create'),
]

views.py

from django.conf.urls import url, include
from django.contrib import admin

from django.conf import settings
from django.conf.urls.static import static
from .views import home
from posts.views import PostListView


urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', PostListView.as_view(), name='home'),
    url(r'^post/', include('posts.urls',  namespace='post')),
    url(r'^api/post/', include('posts.api.urls',  namespace='post-api')),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

在此处输入图像描述

推荐答案

文档指出Django Rest Framework 可以使用Django 1.11、2.0、2.1 版本,尽管 process_request() Django 1.11.6

The docs state that Django Rest Framework works with Django versions 1.11, 2.0, 2.1, although the process_request() method of CSRFCheck was actually introduced in Django 1.11.6

Django版本对于您的Django Rest Framework版本,您使用的(1.10.3)版本过旧。

The version of Django you're using (1.10.3) is too old for your version of Django Rest Framework.

您应该将Django升级到版本 1.11.6或更高版本

You should upgrade Django to version 1.11.6 or ideally higher.

pip install --upgrade django  # Upgrade to the latest Django version

pip install --upgrade django==1.11.6  # Upgrade to version 1.11.6

这篇关于我收到错误消息:rest_framework.request.WrappedAttributeError:'CSRFCheck'对象没有属性'process_request'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆