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