0
我在DRF工作,并有串行,看起来像这样:Django的 - SlugRelated返回完整的对象
class PendingRequestSerializer(serializers.ModelSerializer):
driver = serializers.SlugRelatedField(
slug_field='username',
queryset=User.objects.all()
)
passenger = serializers.SlugRelatedField(
slug_field='username',
queryset=User.objects.all()
)
class Meta:
model = PendingRequest
fields = ('passenger', 'driver', 'ride',)
read_only_fields = ('passenger',)
型号:
class PendingRequest(models.Model):
driver = models.ForeignKey('auth.User', related_name='driver_pending_requests')
passenger = models.ForeignKey('auth.User', related_name='passenger_pending_requests')
ride = models.ForeignKey(Ride)
我可以成功返回用户名的驱动程序和乘客与SlugRelatedField。
现在 - 为骑领域,我希望得到整个换乘对象,不仅是一个字段(如在乘客和驾驶员)。
该怎么办?
感谢您的回答。这个问题是,当我创建一个PendingRequest(POST)时,我把PK放在了骑行场中。我想继续这样做(POST与PK),当我发送获取 - 获取整个领域。这是可能的吗? –
@OfekAgmon嗯,有几个选项,我认为所有的选择都不像我想要的那么流畅。 其中之一是对POST和GET使用不同的视图,并使用不同的序列化器,一个嵌套,一个没有嵌套。 另一个更肮脏的问题是在你的视图中决定调用哪个序列化程序......也取决于你使用的是通用视图还是基本APIView。 – Nadav
@OfekAgmon另一个选择是保持原样(PK),并添加一个额外的字段,一个SerializerMethodField,它将以不同的字段名称返回骑乘对象。 – Nadav