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