Python 如何使用RESTAPI更新用户配置文件字段
我是django的新手,非常困惑。我使用django作为angular应用程序的后端API 我想在用户模型中添加更多的细节,因此我在我的Python 如何使用RESTAPI更新用户配置文件字段,python,django,django-rest-framework,django-authentication,django-rest-auth,Python,Django,Django Rest Framework,Django Authentication,Django Rest Auth,我是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.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)
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')
我正在使用应用程序添加rest身份验证支持:
使用此应用程序,我可以使用此URL编辑用户配置文件,并执行POST请求:http://localhost:8080/rest-auth/user/
问题
如何更新自定义字段公司名称
?在编辑用户配置文件时
我尝试过的
我试图覆盖的UserDetailsSerializer
,但没有任何效果。
这就是我试图添加到我的应用程序serializers.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)
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')
如果您使用的是django rest框架,那么您基本上希望在UserProfile的视图类上有一个更新方法,该方法将用户id作为请求参数。然后,在该方法中,您希望使用ORM为给定的userprofile id获取模型对象,设置作为参数传递的属性,并保存更改的模型对象。然后生成一个成功响应并返回它
您可以在此处阅读有关如何执行此操作的更多信息:通常,在REST API中,您可以使用更新模型的JSON执行PUT请求。override UserDetails Serializer update方法。@levi我将如何执行此操作?我尝试在应用程序中创建serializers.py
,但似乎没有效果。这是我的第一个django应用程序,所以我更迷路了。。。