使用viewsets return在Django Rest框架上发布;405-不允许使用方法桩”;
我正在尝试为我的IOS应用程序创建HiScore模块 我被困在邮政(可能会有同样的问题,但不确定)的一部分,我得到405邮递员。 列表和详细信息工作得很好,所以模型、序列化程序或视图都没有问题,我只是猜测在某处添加权限 观点 serialisers.py使用viewsets return在Django Rest框架上发布;405-不允许使用方法桩”;,django,django-rest-framework,Django,Django Rest Framework,我正在尝试为我的IOS应用程序创建HiScore模块 我被困在邮政(可能会有同样的问题,但不确定)的一部分,我得到405邮递员。 列表和详细信息工作得很好,所以模型、序列化程序或视图都没有问题,我只是猜测在某处添加权限 观点 serialisers.py class HiScoreSerializer(ModelSerializer): image = SerializerMethodField() class Meta: model = HiScore fields = ("u
class HiScoreSerializer(ModelSerializer):
image = SerializerMethodField()
class Meta:
model = HiScore
fields = ("user", "game", "gameType", "gameLevel", "points", "image")
def get_image(self, obj):
try:
profile = UserProfile.objects.get(user=obj.user)
return profile.image.url
except:
return None
url.py
router = DefaultRouter()
router.register(prefix='hiscores', viewset=HiScoreViewSet)
urlpatterns = router.urls
我认为您在视图中缺少了根据的
。试试这个:
在以下观点中:
hiscores = HiScoreViewSet.as_view({
'get': 'list',
'post': 'create'
})
以及在URL中:
from rest_framework.urlpatterns import format_suffix_patterns
urlpatterns = format_suffix_patterns([
url(r'^hiscores/$', hiscores, name='hiscores')
])
但是您的HiScoreViewSet
与示例不同。你没有使用decorator@detail_route(methods=['post'])
我很抱歉,我的朋友,但我在问这个问题之前读过这篇文章,如果你读了,你会发现下面这句话:REST框架中包含的默认路由器将为一组标准的创建/检索/更新/销毁样式操作提供路由,如下所示:这意味着,如果我不重写任何CRUD方法,我将自动获取它们。。。如果你进入浏览器,在url的末尾写上create,你会看到你得到了一个create url。。。同样,这是一个权限问题或身份验证问题,而不是我所理解的视图问题。。感谢绝对不是身份验证问题,否则你将得到一个401未经授权的。你发布的URL是什么?谢谢,这是一个巨大的进步,邮递员仍然无法做到这一点,但atlas现在在浏览器中工作,获取帖子、放置、列表、详细信息,所有内容都在浏览器中工作。。。如何设置json,使其不会崩溃,这是一个不同的事情,我想,但atlas的基本没有权限,任何事情都在工作。。。。URL必须是+=而不是=。。。否则我会丢失所有的URL
from rest_framework.urlpatterns import format_suffix_patterns
urlpatterns = format_suffix_patterns([
url(r'^hiscores/$', hiscores, name='hiscores')
])