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

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

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函数并生成相应的响应。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5475997.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存