如何访问Django ForeignKey模型字段? [英] How to access Django ForeignKey model field?

查看:122
本文介绍了如何访问Django ForeignKey模型字段?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个Django模型

I have two django models

模型A

class A(models.Model):
    aname = models.CharField(max_length=64, verbose_name='name')

和模型B

class B(models.Model):
    bname = models.CharField(max_length=64, verbose_name='name')
    mod = models.ForeignKey(A, related_name='a_b',null=True,on_delete=models.CASCADE)

模型B的序列化器

class BSerializer(serializers.ModelSerializer):
mod= ASerializer(many=False, read_only=True)
class Meta:
    model = B
    fields = (','id','bname','mod.aname')

我想要 aname 字段要使用模型B的序列化器访问模型A的代码。使用mod.aname不起作用。它说

I want the aname field of model A to be accessed with the serializer of model B. Using mod.aname doesn't work. It says


字段名称 mod.aname 对于模型<$ c无效$ c> B 。

我该怎么办?

推荐答案

这个怎么样?在 serializers.CharField 中使用参数 source

How about this one? using parameter source inside serializers.CharField:

class BSerializer(serializers.ModelSerializer):
    mod = serializers.CharField(
        source='mod.aname',
        read_only=True
    )

    class Meta:
        model = B
        fields = ('id','bname','mod')

这篇关于如何访问Django ForeignKey模型字段?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆