是否有方法检索对象的值而不是其ID?

2024-05-15 07:42:30 发布

您现在位置:Python中文网/ 问答频道 /正文

在使用django.core.serializers.serialize时,是否有任何方法可以检索对象而不是ID(pk)

我有一个名为MenuItem的模型,其中有一个与MenuSubItem相关的ManyToManyField

当我执行这个代码时serializers.serialize('json', MenuItem.objects.all())我得到了

{'model': 'support.menuitem', 'pk': 2, 'fields': {'type': 2, 'app_label': None, 'label': 'Intranet Administration', 'sub_item': [**3**]}}

但我真正想要的是

{'model': 'support.menuitem', 'pk': 2, 'fields': {'type': 2, 'app_label': None, 'label': 'Intranet Administration', 'sub_item': [**objects or objects_attribute**]}}

或者如果存在使用其他LIB的变通方法


Tags: noneappsupportfieldsmodelobjectstypeserialize
1条回答
网友
1楼 · 发布于 2024-05-15 07:42:30

可能,在API中,这实际上是一件非常常见的事情,文档中有一篇关于它的文章,看看DRF serializer relations,这叫做嵌套序列化,当你想序列化一个包含另一个可序列化内容的东西时,学习DRF是非常有趣的,YouTube上还有JustDjango,他正在解释使用DRF的一些基本知识

您的代码应该看起来像

class mySerializer(serializers.ModelSerializer):

    Meta:
        model = myModelThatIwantToNest
        fields = ['....']

class myOtherSerializer(serializers.ModeSerializer):
    myModelThatIwantToNest = mySerializer();
    Meta:
        model = myOtherModel
        fields = ['myModelThatIwantToNest', '...']

相关问题 更多 >