不幸的是,您提供并接受的答案无法回答您的原始问题,因为它不会更新模型。但是,这可以通过另一种方便的方法轻松实现:更新或创建
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函数并生成相应的响应。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)