简体   繁体   English

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

[英]How to get data from other table in django with Foreign Key(New to Django)

I have Two table MeterDetail,EnergyData我有两个表 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)

I want to get data from second table using first object. I tried in shell t= MeterDetail.objects.get(meter_id=1) am unable to read this below one t.energydata_set.all()我想使用第一个 object 从第二个表中获取数据。我在 shell 中尝试过 t= MeterDetail.objects.get(meter_id=1) 我无法在一个 t.energydata_set.all() 下面读取它

giving error: AttributeError: 'MeterDetail' object has no attribute 'energydata_set'给出错误:AttributeError: 'MeterDetail' object 没有属性 'energydata_set'

You have to use t.meter_details.all() instead of t.energydata_set.all()你必须使用t.meter_details.all()而不是t.energydata_set.all()

Here, the meter_details is the related_name to get the reverse objects.这里的meter_detailsrelated_name来获取反向对象。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM