使用viewsets return在Django Rest框架上发布;405-不允许使用方法桩”;

使用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

我正在尝试为我的IOS应用程序创建HiScore模块

我被困在邮政(可能会有同样的问题,但不确定)的一部分,我得到405邮递员。 列表和详细信息工作得很好,所以模型、序列化程序或视图都没有问题,我只是猜测在某处添加权限

观点

serialisers.py

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')
])