Python 仅允许在Django rest api框架中进行更新

Python 仅允许在Django rest api框架中进行更新,python,django,rest,django-rest-framework,Python,Django,Rest,Django Rest Framework,我正在开发一个非常简单的应用程序,它只有一个模型和几个字段。我希望这些模型只能通过/admin页面(通过标准的Django管理框架)创建或删除,并且只允许restapi框架修改这些对象 有什么简单的方法可以实现吗?只需创建一个使用更新/检索模型mixen的视图集 from rest_framwork import viewsets, mixins class FooViewSet(mixens.RetrieveModelMixin, mixins.UpdateM

我正在开发一个非常简单的应用程序,它只有一个模型和几个字段。我希望这些模型只能通过/admin页面(通过标准的Django管理框架)创建或删除,并且只允许restapi框架修改这些对象


有什么简单的方法可以实现吗?

只需创建一个使用更新/检索模型mixen的视图集

from rest_framwork import viewsets, mixins
class FooViewSet(mixens.RetrieveModelMixin,
                 mixins.UpdateModelMixin,
                 viewsets.GenericViewSet):
    model = Foo
    queryset = Foo.objects.all()
    serializer_class = FooSerializer

这只会为您提供一个检索或更新模型实例的端点。

只需创建一个使用更新/检索模型混合的视图集

from rest_framwork import viewsets, mixins
class FooViewSet(mixens.RetrieveModelMixin,
                 mixins.UpdateModelMixin,
                 viewsets.GenericViewSet):
    model = Foo
    queryset = Foo.objects.all()
    serializer_class = FooSerializer

这只会为您提供一个检索或更新模型实例的端点。

您需要设置
http\u方法\u名称
如下所示:

class WebViewSet(mixins.CreateModelMixin,
                 mixins.ListModelMixin,
                 mixins.UpdateModelMixin,
                 viewsets.GenericViewSet):

    model = WebTransaction
    http_method_names = ('get', 'put')

您需要设置
http\u方法\u名称
如下所示:

class WebViewSet(mixins.CreateModelMixin,
                 mixins.ListModelMixin,
                 mixins.UpdateModelMixin,
                 viewsets.GenericViewSet):

    model = WebTransaction
    http_method_names = ('get', 'put')

如果您想只更新对象,请使用。使用此视图,您将仅为您的模型创建更新(PUT方法)。如有疑问,请参阅中的文档。

如果您只想更新使用的对象。使用此视图,您将仅为您的模型创建更新(PUT方法)。如有疑问,请参阅中的文档。

我不理解您的问题。你想在管理员中禁用更新并只允许通过rest框架进行更新吗?@fasouto我想在rest框架中禁用创建和删除并启用更新我不理解你的问题。您想在管理中禁用更新,只允许通过rest框架进行更新吗?@fasouto我想在rest框架中禁用创建和删除,并启用UpdateWalcome!仅仅包含链接并不是一个好的答案。随着时间的推移,链接可能无法访问。请阅读这篇文章以遵循那里的指导原则。欢迎来到SO!仅仅包含链接并不是一个好的答案。随着时间的推移,链接可能无法访问。请阅读这篇文章以遵循那里的指导原则。