django - Django-rest-frame 工作获取 oneToOne Filed 的详细信息
问题描述
我正在构建用户配置文件功能,以下是模型、模型序列化器和模型视图集的详细信息。
当我向 UserProfile 发送 GET 请求时,我只得到 UserProfile 模型中的字段。但我还想获取 User 模型中存在的名字、姓氏、电子邮件等。
class UserProfile(models.Model):
user= models.OneToOneField(User,on_delete=models.CASCADE,related_name='userprofile');
state= models.CharField(max_length=200)
city= models.CharField(max_length=200)
add1= models.CharField(max_length=200)
add2= models.CharField(max_length=200)
postalcode= models.IntegerField()
country= models.CharField(max_length=200)
class UserProfileSerializer(serializers.ModelSerializer):
class Meta:
model = UserProfile
fields = ('state','city','country')
class UserProfileViewSet(viewsets.ModelViewSet):
queryset = UserProfile.objects.all()
serializer_class = UserProfileSerializer
def get_queryset(self):
if self.action == 'list':
return self.queryset.filter(user=self.request.user)
return self.queryset
请让我知道如何从 userProfile 模型中获取 OneToOneField 的详细信息。
解决方案
创建一个用户序列化程序并将其添加到用户配置文件序列化程序和字段中。
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = '__all__'
class UserProfileSerializer(serializers.ModelSerializer):
user=UserSerializer(read_only=True)
class Meta:
model = UserProfile
fields = ('state','city','country','user')
推荐阅读
- react-native - 反应本机 axios 调用抛出 403 但邮递员正确输出数据
- python - 在numpy数组中按值选择性删除
- sequence - 使用正数和负数重复模 -1 到 1 的数字
- python - 我需要从给定的小时、分钟、秒中浮动小时
- ios - 使用 Swift 的 TCP 套接字
- dialogflow-es - 版本控制如何对 google 上的操作起作用?
- android - 将数据从活动 B 传递到活动 A 片段
- azure-eventhub - 我可以在没有服务端点的应用服务环境中收听事件中心吗?
- php - 特征方法 hasTooManyLoginAttempts 尚未应用
- php - 使用 PDO 加载数据时出现问题:编码错误