Как получить данные из модели, созданной текущим пользователем, и перечислить их для поля другой модели в django

Представим, что у меня есть две модели. Первая модель содержит данные проклятия и пользователя, который создал этот курс

class Course(models.Model):
    course_name = models.CharField(max_length=100, null=False)
    description = models.CharField(max_length=255)
    user_profile = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)

и моя вторая модель:

class Lesson(models.Model):
    course = models.OneToOneField(Course, on_delete=models.CASCADE) # 
    # inside the course I want my APIVIEW to list only the courses that current user created. 
    # OnetoOne relationship does not solve the problem. 

    status = models.CharField(choices=STATUS, null=False, default=GOZLEMEDE,max_length=20)
    tariffs = models.FloatField(max_length=5,null=False,default=0.00)
    continues_off = models.CharField(max_length=2)
    user_profile = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)

Мои сериализаторы для обеих моделей:

class LessonSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Lesson
        fields = ('course', 'status', 'tariffs', 'continues_off', 'user_profile')

        def create(self, validated_data):

            lesson = models.Lesson.objects.create(
                course = validated_data['course'],
                status = validated_data['status'],
                tariffs=validated_data['tariffs'],
                continues_off=validated_data['continues_off'],
                user_profile=validated_data['user_profile']
            )
            return lesson

class CourseSerializer(serializers.ModelSerializer):
    """Serializers Course content"""
    class Meta:
        model = models.Course
        fields = '__all__'

    def create(self,validated_data):
        course = models.Course.objects.create(
            course_name = validated_data['course_name'],
            description=validated_data['description'],
            user_profile=validated_data['user_profile']
        )

        return course

Мой набор представлений:

class LessonViewset(viewsets.ModelViewSet):

    model = models.Lesson
    serializer_class = serializers.LessonSerializer
    authentication_classes = (SessionAuthentication,)
    permission_classes = (IsAuthenticated,BasePermission,)

    def get_queryset(self):
        user_current = self.request.user.id
        return models.Lesson.objects.filter(user_profile=user_current)

Как я могу получить желаемый результат. Я хочу получить курсы для текущего пользователя и показать их в виде выпадающего списка в моем API представлении.

я думаю, что измените код представления на :

    def get_queryset(self,id):
        return model.objects.filter(user_profile=id)
#You do not need to call it again when you put the Lesson on the model

\

Вернуться на верх