如何使用外键从Django的其他表中获取数据(Django的新手)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用外键从Django的其他表中获取数据(Django的新手)相关的知识,希望对你有一定的参考价值。

我有两个表MeterDetail,EnergyData

class MeterDetail(models.Model):
    metername = models.CharField(max_length=20)
    meter_id = models.IntegerField()
    meter_type = models.CharField(max_length=20)
    meter_purpose = models.CharField(max_length=20)#auto_now_add=True
    meter_location = models.CharField(max_length=20)

    class Meta:
        db_table = 'meterdetails'
    def __str__(self):
        return str(self.meter_id)
class EnergyData(models.Model):
    last_kwh = models.FloatField()
    date_time_recorded = models.DateTimeField(default=timezone.now)#auto_now_add=True
    meter_id = models.ForeignKey(MeterDetail,on_delete=models.CASCADE,related_name="meter_details")

    class Meta:
        db_table = 'energydata'
        get_latest_by = "date_time_recorded"
    def __str__(self):
        return str(self.last_kwh)

我想使用第一个对象从第二个表中获取数据。我在外壳中尝试过t = MeterDetail.objects.get(meter_id = 1)我无法阅读下面的这篇t.energydata_set.all()

给出错误:AttributeError:'MeterDetail'对象没有属性'energydata_set'

答案
您必须使用

t.meter_details.all()而不是t.energydata_set.all()

这里,

meter_details

相关名称以获取相反的对象。

以上是关于如何使用外键从Django的其他表中获取数据(Django的新手)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用外键从 2 个表中获取所有数据

如何借助一对多关系在 Django 中使用外键从课程中获取主题

根据codeigniter中的外键从两个表中获取json编码数据

使用外键从表中删除

PHP Laravel 根据投票表的外键从问题表中获取所有问题

尝试使用外键从组合框中获取数据并更新数据库