如何解决Django Restframework Serilaizer,仅在请求中传递用户名时保存数据
我在django rest中使用modelserializer创建了一个序列化器。
class UserSerializer(serializers.ModelSerializer):
photo_url = serializers.SerializerMethodField()
member_from = serializers.SerializerMethodField()
class Meta:
model = models.UserProfile
fields = ['username','first_name','last_name','photo_url','github_link','linkedin_link','points','has_badge','bio','member_from']
def get_photo_url(self,user):
request = self.context.get('request')
photo_url = user.profile_pic.url
return request.build_absolute_uri(photo_url)
def get_member_from(self,user):
request = self.context.get('request')
now = datetime.datetime.now()
date_mem = user.date_joined.replace(tzinfo=None)
print(now,date_mem)
return timeago.format(date_mem,now)
仅在请求中传递用户名时使用邮递员,然后数据才会保存在数据库中,否则不会保存。
例如:
当我传递名字时,它不会保存 但是当我传递first_name和用户名时,它会起作用
我的查看代码:
def put(self,request):
serilaized_user = serializers.UserSerializer(request.user,context={"request": request},data=request.data)
if serilaized_user.is_valid():
serilaized_user.save()
return Response(serilaized_user.data)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。