[英]Django Rest Framework: POST object with id
是否可以在發布新對象的同時指定其ID而不是自動遞增? 這是一次導入,之后將更正數據庫ID序列。
class TestModelSerializer(serializers.ModelSerializer):
class Meta:
model = TestModel
fields = ('id', 'name')
class TestModelViewSet(viewsets.ModelViewSet):
queryset = TestModel.objects.all()
serializer_class = TestModelSerializer
import requests
def test_post(endpoint):
data = {
"id": 30,
"name": "Test",
}
r = requests.post(endpoint, data=data)
print(r.status_code, r.reason)
test_post('http://localhost:8000/api/test_model/30/')
>>> 405 Method Not Allowed
test_post('http://localhost:8000/api/test_model/')
>>> 201 Created
201 Created
創建一個新對象,但順序是下一個ID而不是所需的ID。
我也嘗試過r = requests.put('http://localhost:8000/api/test_model/30/', data=data)
但未找到404 Not Found
這可能有效,但我不確定,我相信django-rest從您的django模型中讀取到id是一個自動遞增字段,因此不會使用提供的id創建。 但是,如果您將其明確指定為整數字段,則可以使用。
class TestModelSerializer(serializers.ModelSerializer):
id = serializers.IntegerField()
class Meta:
model = TestModel
fields = ('id', 'name')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.