gpt4 book ai didi

python - 如何处理从一个模型字段到另一个模型字段的数据

转载 作者:太空宇宙 更新时间:2023-11-04 04:08:14 25 4
gpt4 key购买 nike

我有ExerciseTrainingWorkout 模型。

Training包含一些练习(Exercise)

Workout 包含训练(Training)。

我的 models.py 片段:

class Exercise(models.Model):
user = models.ForeignKey(User, related_name='exercises',
on_delete=models.CASCADE)
name = models.CharField(max_length=80)
description = models.TextField(max_length=300)
details = models.ManyToManyField(ExerciseDetail, blank=True)
...


class Training(models.Model):
user = models.ForeignKey(User, related_name='trainings',
on_delete=models.CASCADE)
name = models.CharField(max_length=80)
description = models.CharField(max_length=250)
exercises = models.ManyToManyField(Exercise, related_name='trainings',
blank=True)
...


class Workout(models.Model):
user = models.ForeignKey(User, related_name='workouts',
on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now=True)
name = models.CharField(max_length=200)
description = models.TextField(max_length=400, blank=True)
trainings = models.ManyToManyField(Training, related_name='workouts',
blank=True)
...

我希望有可能使用诸如 Workout.objects.get(name='workout').exercises.objects.all() 之类的东西来获取包含的所有练习的列表/集合在所选锻炼的训练中。

我还希望有可能在 Django Rest Framework 中使用 exercises`` 字段来列出所有练习,可能带有指向特定 Exercise``` 模型序列化器的链接。

有人可以提示我该怎么做吗?

最佳答案

您可以通过以下方式查询:

Exercise.objects.filter(
<b>trainings__workouts__name='workout'</b>
)

通过连续的下划线 (__),您可以“透视”关系。

因此,这将返回属于 TrainingExercise,这些 Training 属于 Workout,名称为 'Workout'

关于python - 如何处理从一个模型字段到另一个模型字段的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56852371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com