我是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 provides的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')
答案 0 :(得分:0)
如果您正在使用django rest框架,那么您基本上希望在您的View类上为UserProfile提供一个更新方法,该方法将用户ID作为请求参数。然后在该方法中,您希望使用ORM获取给定userprofile id的模型对象,设置也作为参数传递的属性,并保存更改的模型对象。然后生成成功响应并返回它。
您可以在此处详细了解如何执行此操作:http://www.django-rest-framework.org/api-guide/views/