亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Django 中多態序列化對象

在 Django 中多態序列化對象

瀟瀟雨雨 2021-08-11 21:55:40
我有以下對象繼承模型。class Room:    name = models.CharField(db_index=True, unique=True, max_length=255)    status = models.CharField(default=RoomStatus.ACTIVE, max_length=256, null=True)    members = models.ManyToManyField(User)    last_activity = models.DateTimeField(default=timezone.now)繼承的模型是,class LeagueRoom(Room):    league = models.ForeignKey(League, on_delete=models.CASCADE, null=True)    location = models.ForeignKey(Location, on_delete=models.CASCADE, null=True)    logo_url = models.CharField(max_length=1024, null=True)和class ClubRoom(Room):    club = models.ForeignKey(Club, on_delete=models.CASCADE, null=True)    location = models.ForeignKey(Location, on_delete=models.CASCADE, null=True)    logo_url = models.CharField(max_length=1024, null=True)各自的序列化程序如下,class RoomSerializer(serializers.ModelSerializer):    members = UserSerializer(read_only=True, many=True)    class Meta:        model = Room        fields = ('id', 'name', 'status', 'members', 'created', 'modified', 'last_active')和class LeagueRoomSerializer(serializers.ModelSerializer):    location = LocationSerializer(read_only=True)    league = LeagueSerializer(read_only=True)    room = RoomSerializer(read_only=True)    class Meta:        model = LeagueRoom        fields = ('id', 'name', 'location', 'status', 'league',                  'logo_url', 'room', 'created', 'modified',)和class ClubRoomSerializer(serializers.ModelSerializer):    location = LocationSerializer(read_only=True)    club = ClubSerializer(read_only=True)    room = RoomSerializer(read_only=True)    class Meta:        model = ClubRoom        fields = ('id', 'name', 'location', 'club', 'logo_url',                  'status', 'room', 'created', 'modified',)我的問題是我已通過以下方式為用戶獲取了所有房間。rooms = user.room_set.order_by('-last_activity')現在我想根據房間類型序列化這些數據。因此,不是使用RoomSerializerI want 遍歷房間列表,如果房間是 ClubRoom,則使用ClubRoomSerializeror else LeagueRoomSerializer。我不確定如何從父對象確定子對象。有人可以幫我弄這個嗎。
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號