0

I have Two table 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()

giving error: AttributeError: 'MeterDetail' object has no attribute 'energydata_set'

Naveen K
  • 3
  • 3

1 Answers1

0

You have to use t.meter_details.all() instead of t.energydata_set.all()

Here, the meter_details is the related_name to get the reverse objects.

JPG
  • 82,442
  • 19
  • 127
  • 206