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 для создания викторины