Как получить данные из другой таблицы в django с помощью внешнего ключа (впервые в Django) - PullRequest
0 голосов
/ 27 мая 2020

У меня есть две таблицы 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 '

1 Ответ

0 голосов
/ 27 мая 2020

Вы должны использовать t.meter_details.all() вместо t.energydata_set.all()

Здесь meter_details - это related_name , чтобы получить обратные объекты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...