有没有办法检索对象的值而不是它的 ID?
Is there a way to retrieve the value of object instead of its ID?
使用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**]}}
或者如果有使用其他库的解决方法
可能,这实际上是 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', '...']
使用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**]}}
或者如果有使用其他库的解决方法
可能,这实际上是 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', '...']