如何使用rest API更新用户配置文件字段

时间:2015-02-11 03:07:04

标签: python django django-rest-framework django-authentication django-rest-auth

我是django的新手,非常困惑。我使用django作为我的角度应用程序的后端API。

我想在User模型中添加更多细节,因此我将以下内容添加到models.py

from django.db import models
from django.contrib.auth.models import User

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    company_name = models.CharField(max_length=100)

我正在使用应用程序添加其他身份验证支持:https://github.com/Tivix/django-rest-auth

使用此应用程序,我可以使用此URL编辑用户配置文件,执行POST请求:http://localhost:8080/rest-auth/user/

问题

如何更新自定义字段company_name?在编辑用户个人资料时?

我尝试了什么

我试图覆盖application providesUserDetailsSerializer,但它没有任何效果。 这是我尝试添加到我的应用程序serializers.py

的内容
class UserProfileSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.UserProfile
        fields = ('company_name',)

class UserDetailsSerializer(serializers.ModelSerializer):
    profile = UserProfileSerializer(required=True)
    class Meta:
        model = models.User
        fields = ('id', 'username', 'first_name', 'last_name', 'profile')

1 个答案:

答案 0 :(得分:0)

如果您正在使用django rest框架,那么您基本上希望在您的View类上为UserProfile提供一个更新方法,该方法将用户ID作为请求参数。然后在该方法中,您希望使用ORM获取给定userprofile id的模型对象,设置也作为参数传递的属性,并保存更改的模型对象。然后生成成功响应并返回它。

您可以在此处详细了解如何执行此操作:http://www.django-rest-framework.org/api-guide/views/