我有两个通过外键(类别,活动)链接在一起的表。我正在尝试使用活动对象从查询中访问类别表中的值。
模型类别:
class Category(models.Model):
name = models.CharField(max_length=100)
weekly_goal = models.IntegerField(blank=True, null=True)
metacat_fk = models.ForeignKey(MetaCategory, models.DO_NOTHING, db_column='metacat_fk')
class Meta:
managed = False
db_table = 'category'
class Activity(models.Model):
name = models.CharField(unique=True, max_length=100)
distance = models.FloatField(blank=True, null=True)
duration = models.TimeField(blank=True, null=True)
date = models.DateField(blank=True, null=True)
note = models.CharField(max_length=100, blank=True, null=True)
category = models.ForeignKey(Category, models.DO_NOTHING, db_column='category_fk')
class Meta:
managed = False
db_table = 'activity'
试图访问类别中的值:
activity = Activity.objects.select_related('category')
frequency_df = pd.DataFrame(list(activity.values()))
logging.warning(activity.query)
logging.warning(frequency_df.head())
输出:
SELECT "activity"."id", "activity"."name", "activity"."distance", "activity"."duration", "activity"."date", "activity"."note", "activity"."category_fk", "category"."id", "category"."name", "category"."weekly_goal", "category"."metacat_fk" FROM "activity" INNER JOIN "category" ON ("activity"."category_fk" = "category"."id")
id name distance duration date note category_id
0 1382 Yoga - Wednesday June 19 2019 None None 2019-06-19 Yoga 3
1 1385 Yoga - Wednesday September 18 2019 None None 2019-09-18 Yoga 3
2 1388 Yoga - Tuesday October 08 2019 None None 2019-10-08 Yoga 3
3 1391 Yoga - Tuesday October 15 2019 None None 2019-10-15 Yoga 3
4 1394 Yoga - Saturday October 26 2019 None None 2019-10-26 Yoga 3
根据我的查询,它是从我的类别表中选择值,但是我的Activity对象仅包含我的FK。我希望输出中包含category.name category.weekly目标...的列。
我有两个通过外键(类别,活动)链接在一起的表。我正在尝试使用活动对象从查询中访问类别表中的值。模型类别:类别Category(...
如果需要相关值,则需要明确定义它们。