Django Rest补丁/更新功能不起作用

时间:2018-03-24 02:00:22

标签: python django django-rest-framework

我是Python,Django和Rest Framework的新手。我只是想设置一个简单的API来允许在postgresql数据库中更新数据。我正在尝试测试我的补丁功能,但它在数据库中没有任何影响。我知道数据库连接正在运行,因为我的ViewList端点正在正确地提取数据。我在这里搜索了许多类似的问题,但没有一个与我所拥有的相匹配,或者提供的解决方案都不起作用。这就是我目前所拥有的:

  

型号:

class Users(models.Model):

    userid = models.IntegerField(primary_key=True)
    username = models.CharField(max_length=50)

    class Meta:
        managed = False
        db_table = 'users'
  

URL:

path('users/<int:userid>/', UsersRudView.as_view(), name='users-rud')
  

查看:

class UsersRudView(generics.RetrieveUpdateDestroyAPIView):

    lookup_field     = 'userid'
    serializer_class = UsersSerializer

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

    def put(self, request, *args, **kwargs):
        return self.update(request, *args, **kwargs)

    def patch(self, request, *args, **kwargs):
        return self.partial_update(request, *args, **kwargs)
  

这是我用来测试补丁功能的电话:

url = 'http://127.0.0.1:8000/users/1/'
payload = {"userid":1,"username":"John Smith"}
r = requests.put(url, data=json.dumps(payload))

我尝试了许多不同的方法,但从我看到的这应该接近我需要的方法。我只是对此知之甚少,不知道我的错误在哪里。我希望这是非常明显和简单的事情。

0 个答案:

没有答案