您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Django Rest Framework POST更新(如果已存在或已创建)

Django Rest Framework POST更新(如果已存在或已创建)

不幸的是,您提供并接受的答案无法回答您的原始问题,因为它不会更新模型。但是,这可以通过另一种方便的方法轻松实现:更新或创建

def create(self, validated_data):
    answer, created = Answer.objects.update_or_create(
        question=validated_data.get('question', None),
        defaults={'answer': validated_data.get('answer', None)})
    return answer

Answer如果question=validated_data['question']从中获得答案的话,如果不存在一个对象,这将在数据库中创建一个对象validated_data['answer']。如果已经存在,django会将其answer属性设置为validated_data['answer']

正如Nirri的回答所指出的,此函数应位于序列化程序内部。如果使用通用的ListCreateView,它将在发送过请求后调用create函数生成相应的响应。

Go 2022/1/1 18:33:51 有494人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶