Django возвращает внешний ключ как объект, но использует только uuid для создания

У меня есть 2 модели, подкатегория и викторина. Каждая викторина имеет одну подкатегорию. Я хочу сериализовать викторину, чтобы вернуть полный объект подкатегории, когда я получаю его с помощью get, но иметь возможность создать новую викторину, передав uuid подкатегории. Если я использую SubcategorySerializer в Quizserializer, мне нужно указать полную подкатегорию вместо передачи только uuid в POST.

Мои модели:


class SubCategory(BaseModel):
    name = models.CharField(max_length=100)
    category = models.ForeignKey(Category, on_delete=models.CASCADE, related_name='category')
    description = models.CharField(max_length=100, blank=True, null=True)

class Quiz(BaseModel):
    name = models.CharField(max_length=100)
    subcategory = models.ForeignKey(SubCategory, on_delete=models.CASCADE, related_name='subcategory')
    description = models.CharField(max_length=100, blank=True, null=True)

Мои сериализаторы:


class SubCategorySerializer(serializers.ModelSerializer):
    category = CategorySerializer()

    class Meta:
        model = SubCategory
        fields = [
            'uuid',
            'name',
            'description',
            'category',
            
        ]

class QuizSerializer(serializers.ModelSerializer):
    subcategory = SubCategorySerializer(read_only=True)

    class Meta:
        model = Quiz
        fields = [
            'uuid',
            'name',
            'subcategory',
            'description',
        ]

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

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