python - 用于从多个类中获取数据的序列化器
问题描述
环境是Python
和Django3
我想制作从多个模型类中检索数据的 api。
我有这样的模型,每个 CountryStat 都有 Country。
class Country(models.Model):
code = models.CharField(max_length=3,unique=True)
name = models.CharField(max_length=50)
class CountryStat((models.Model):
country = models.ForeignKey(Country, on_delete=models.CASCADE,null=True)
date = models.DateField(null=True,blank =True)
stat = models.IntegerField()
现在我想获得Coutry Stat
每个Country
.
所以我为 Country 制作了序列化器
class CountrySerializer(serializers.ModelSerializer):
latest_stat = serializers.SerializerMethodField()
class Meta:
model = Country
fields = ('id','code','latest_stat')
def get_latest_stat(self,obj):
# how can I get the latest stat from CountryStat model ????
这是正确的想法还是我该怎么做?
解决方案
您应该latest_stat
在模型上定义一个自定义属性:
class Country(models.Model):
code = models.CharField(max_length=3,unique=True)
name = models.CharField(max_length=50)
def latest_stat(self):
return self.countrystat_set.order_by('-date').first()
推荐阅读
- terminal - Jupyter Notebook 无法访问桌面文件和文件夹
- c++ - 有没有办法解决这个模棱两可的隐式强制转换运算符重载?
- python - 如何使用css选择器在特定div之前获取div
- openstack - 如何在 KVM 虚拟机下在 Openstack 上运行 ESXi
- android - 通过单击 Recyclerview 项调用 SlidingUpPanelLayout
- python - 线性回归模型中的大 MSE 和 MAE
- reactjs - 列表中的每个孩子都应该有一个唯一的“关键”道具,React
- c# - 拆分字符串并获得不同的输出
- cypress - 断言元素消失:等待元素
- amazon-ec2 - 当 eth0 上的实例分配了两个私有 IPS 时,master 上的 k3s 集群 pod 无法访问互联网