带有Pandas的Django访问ForeignKey

时间:2019-06-18 08:58:53

标签: python django pandas

我不认识熊猫,所以这可能微不足道。

我有这行代码:

admin_data = pd.DataFrame.from_records(administrations.values()).rename(columns = {'id':'administration_id', 'study_id': 'study_name', 'url_hash': 'link'})

正在从administration模型(administrations是一个记录集)获取数据并使用它。我不想使用study_id,而是要获得研究名称。使用Djano ORM,我会使用study__name,但在这里不能这样做。

如何将study.name代替study.id放入admin_data

模型

class administration(models.Model):
    study = models.ForeignKey("study") # Study name
    ...

class study(models.Model):
    name = models.CharField(max_length = 51) # Study name
    ...

1 个答案:

答案 0 :(得分:2)

Query the columns you need并通过外键使用the __ syntax to get the name

admin_data = pd.DataFrame.from_records(
    administrations.values(
        "id",
        "study__name",  # <-- get the name through the foreign key
        "url_hash",
    )
).rename(
    columns={
        "id": "administration_id",
        "study__name": "study_name",
        "url_hash": "link",
    }
)