2

我是 django 新手,很困惑。我使用 django 作为我的 Angular 应用程序的后端 API。

我想向用户模型添加更多细节,所以我将以下内容添加到我的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?在编辑用户个人资料时?

我试过的

我试图覆盖应用程序提供UserDetailsSerializer的,但它没有任何效果。这是我尝试添加到我的应用程序的内容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')
4

1 回答 1

0

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

您可以在此处阅读有关如何执行此操作的更多信息:http: //www.django-rest-framework.org/api-guide/views/

于 2015-02-11T08:16:32.790 回答