我刚开始使用 Django 尝试制作 API REST,出于某种我不明白的原因,'Workout' object has no attribute 'exercises'当我这样做时会出现此错误GET - /workouts。
我正在使用Django REST 框架来制作这个东西。
这是我认为您需要帮助我的代码的一部分:
序列化程序.py
class WorkoutSerializer(serializers.ModelSerializer):
exercises = serializers.StringRelatedField(many=True)
class Meta:
model = Workout
fields = ['id', 'name', 'creation_date', 'exercises']
class ExerciseSerializer(serializers.ModelSerializer):
class Meta:
model = Exercise
fields = ['url', 'video_url', 'workout']
模型.py
class Workout(models.Model):
name = models.CharField(max_length=30)
creation_date = models.DateField(auto_now_add=True)
def __str__(self):
return self.name
class Exercise(models.Model):
video_url = models.URLField(max_length=200)
workout = models.ForeignKey(Workout, related_name='workout', on_delete=models.CASCADE)
def __str__(self):
return str(self.video_url)
视图.py
class WorkoutViewSet(viewsets.ModelViewSet):
queryset = Workout.objects.all()
serializer_class = WorkoutSerializer
class ExerciseViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows exercises to be viewed or edited.
"""
queryset = Exercise.objects.all()
serializer_class = ExerciseSerializer