【发布时间】:2021-08-02 04:58:56
【问题描述】:
我有一个嵌套的序列化程序,它将一些作为外键的字段绑定到相关对象,当我发出 get 请求时,我得到了我想要的数据,但是当我发出补丁请求时,我希望能够只提供外键 id 而不是整个对象表示。
编辑:
class Preferences(models.Model):
user = models.ForeignKey(User, related_name='preferences', on_delete=models.CASCADE)
current_patient = models.ForeignKey(Patient, null=True, on_delete=models.CASCADE, default=None)
current_professional = models.ForeignKey(Professional, null=True, on_delete=models.CASCADE, default=None)
current_entity = models.ForeignKey(Entity, null=True, on_delete=models.CASCADE, default=None)
current_supervisor = models.ForeignKey(Supervisor, null=True, on_delete=models.CASCADE, default=None)
class PreferencesSerializer(serializers.ModelSerializer):
current_patient = PatientSerializer(many=False)
current_professional = ProfessionalSerializer(many=False)
current_entity = EntitySerializer(many=False)
current_supervisor = SupervisorSerializer(many=False)
class Meta:
model = Preferences
fields = '__all__'
class PreferencesView(generics.RetrieveUpdateAPIView):
serializer_class = PreferencesSerializer
def get_object(self):
return Preferences.objects.get(user=self.request.user)
【问题讨论】:
-
对实现修补的视图集使用不同的序列化程序。
-
但我希望能够像我当前的序列化程序一样获得包含数据的响应。
-
但我没有看到问题:您制作了两种序列化程序,一种使用嵌套数据进行检索,另一种使用主键放置/修补/...
-
是的,但是我需要编写两个视图,或者一种复杂的方法来选择序列化程序,但我猜 patch 方法的响应与 get 方法的响应不同。
-
您能分享一个您的代码示例吗?如果你这样做会更容易帮助你:)另外,请分享你提出的要求。
标签: python django django-rest-framework