【发布时间】:2021-09-16 06:53:45
【问题描述】:
我正在尝试创建一个 UpdateAPI 来更新我的模型。我需要遵守这个API schema。
我尝试了以下方法:
api.py
class AlarmstichworteUpdateApi(ApiErrorsMixin, APIView):
permission_classes = [IsAuthenticated]
class InputSerializer(serializers.ModelSerializer):
updated = serializers.DateTimeField()
name = serializers.CharField(max_length=100)
class Meta:
model = AlarmstichworteConfig
fields = (
'__all__'
)
def put(self, request, id, *args, **kwargs):
serializer = self.InputSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
update_alarmstichwort(id=id, **serializer.validated_data)
return Response(status=status.HTTP_200_OK)
services.py
def update_alarmstichwort(
*,
id: int,
updated: datetime,
name: str,
) -> AlarmstichworteConfig:
alarmstichwort = alarmstichwort_by_id(id=id).update(
name=name,
updated=updated,
)
# alarmstichwort.full_clean()
alarmstichwort.save()
return alarmstichwort
selector.py
def alarmstichwort_by_id(*, id, filters=None):
return AlarmstichworteConfig.objects.filter(id=id)
但是,我的问题是这不起作用。当我这样做时,我得到了错误:
File "D:\04-Dev\project\{...}\services.py", line 48, in update_alarmstichwort alarmstichwort.save() AttributeError: 'int' object has no attribute 'save'
你能帮我或告诉我错误是什么吗?提前谢谢你。
【问题讨论】:
标签: python django django-rest-framework jwt