Django rest framework DRF-非模型序列化程序中的外键
我有一个非模型序列化程序,如下所示:Django rest framework DRF-非模型序列化程序中的外键,django-rest-framework,serialization,Django Rest Framework,Serialization,我有一个非模型序列化程序,如下所示: class NonModelSerializer(Serializer): secret_number = IntegerField() user = ??? def save(**kwargs): ... do something with the secret number and user ... 应该写什么来代替?以便我的序列化程序接受用户的ID,并且在save()方法中,我在user字段中看到给定ID的用
class NonModelSerializer(Serializer):
secret_number = IntegerField()
user = ???
def save(**kwargs):
... do something with the secret number and user ...
应该写什么来代替
?
以便我的序列化程序接受用户的ID,并且在save()
方法中,我在user
字段中看到给定ID的用户?类似于普通Django中的modelcoocefield
。您应该使用PrimaryKeyRelatedField
,:
class NonModelSerializer(serializers.Serializer):
user = serializers.PrimaryKeyRelatedField(queryset=User.objects.all())
secret_number = serializers.IntegerField()
class Meta:
fields = ('user', 'secret_number')
def create(self, validated_data):
print(self.validated_data)
pass
def update(self, instance, validated_data):
pass
我建议您覆盖create
和update
而不是save
,但是您也可以通过self.validated\u data
在save
中访问所选用户