显示空数据的嵌套序列化程序

索拉布·加洛特

显示空数据的嵌套序列化程序

from rest_framework import serializers
from .models import PlayerTable, ChildTable

class ChildTableSerializer(serializers.ModelSerializer):
    # x= ChildTable.objects.all().values
    class Meta:
        model = ChildTable
        fields = ('season','goals','fk')
        # fields =('fk',)

class PlayerTableSerializer(serializers.ModelSerializer):
    player_details = ChildTableSerializer(many=True, read_only=True)

    class Meta:
        model = PlayerTable
        fields =  ('player_details',)

请帮助序列化程序获取的数据为空

迪克格罗滕

什么是领域'player-details'它不是您PlayerTable模型上的字段您需要使用相关字段的名称。在你的情况下,因为你有ForeignKey关系ChildTable --> PlayerTable并且你没有指定related_name,它是childtable_set. 因此,如果您这样做,它应该可以工作:

class PlayerTableSerializer(serializers.ModelSerializer):
    childtable_set = ChildTableSerializer(many=True, read_only=True)

    class Meta:
        model = PlayerTable
        fields =  ('childtable_set',)

或者,更改您的模型命名以更符合 Django 约定:

class PlayerDetail(models.Model):
    player = models.ForeignKey(Player, db_column="fk", related_name="player_details", null=True, blank=True, on_delete=models.CASCADE)
    ...

    class Meta:
        managed = False
        db_table = "child_table"


class Player(models.Model):
    name = models.CharField(db_column="player_name", ...)

    class Meta:
        db_table = "player_table"

那么你的序列化器会起作用,因为关系是player_details. 这也有一个好处,当你details.player得到播放器对象时(现在,你必须这样做,details.fk但实际上不返回外键值,它返回Player对象)。此外,您的模型有更多的 Python 名称(Player不是PlayerTable)。您的代码将更具可读性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

序列化程序不显示外键数据

来自分类Dev

Django:彼此嵌套序列化程序

来自分类Dev

嵌套序列化程序的创建

来自分类Dev

Django 嵌套序列化程序

来自分类Dev

嵌套关系 REST 序列化程序

来自分类Dev

嵌套json数据的序列化

来自分类Dev

Django Rest Framework嵌套的序列化器未显示相关数据

来自分类Dev

使用 django 序列化程序类保存嵌套数据

来自分类Dev

元数据中不包含 DRF 嵌套模型序列化程序

来自分类Dev

使用请求数据覆盖序列化程序,包括缺少密钥的空值

来自分类Dev

JAXB:序列化嵌套映射时获取空值

来自分类Dev

使用可空嵌套列表序列化对象

来自分类Dev

使用可空嵌套列表序列化对象

来自分类Dev

gson嵌套的自定义序列化程序

来自分类Dev

Django Rest Framework嵌套的序列化程序部分更新

来自分类Dev

Django Rest Framework更新嵌套序列化程序

来自分类Dev

嵌套序列化程序中的当前用户

来自分类Dev

用于用户创建的DRF序列化程序嵌套字段

来自分类Dev

活动模型序列化程序属性上的嵌套查询

来自分类Dev

用于用户创建的DRF序列化程序嵌套字段

来自分类Dev

Django 休息嵌套序列化程序失败

来自分类Dev

在 django 序列化程序中排除嵌套模型字段

来自分类Dev

带有嵌套序列化程序的 Django 视图

来自分类Dev

Django 在嵌套序列化程序中发布

来自分类Dev

在嵌套序列化程序中使用 selected_related()

来自分类Dev

嵌套字段序列化器-数据丢失

来自分类Dev

嵌套数据类的Json序列化

来自分类Dev

DRF 序列化程序返回可为空的字段

来自分类Dev

JSON嵌套序列化