Всякий раз, когда я пытаюсь десериализовать список объектов Technology при создании TechnologyStack, я получаю сообщение:
Поле \ "technologies \" типа \ "String \" не должно иметь подвыбор.
Я использую djangorestframework == 3.8.2.Кто-нибудь знает, что является причиной этого и / или потенциального решения?
Также обратите внимание, что я использую библиотеку graphene-django.Но, похоже, эта проблема связана с сериализатором drf.
class TechnologyProfile(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
name = models.CharField(max_length=100, unique=True)
class Technology(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
profile = models.ForeignKey(TechnologyProfile, blank=True, null=True, on_delete=models.CASCADE)
class Meta:
verbose_name_plural = "technologies"
class TechnologyStack(models.Model):
technologies = models.ManyToManyField(Technology, related_name='technology_stacks')
class TechnologyProfileSerializer(serializers.ModelSerializer):
user_id = RelayIdField()
name = serializers.CharField()
class Meta:
model = TechnologyProfile
fields = ('id', 'name', 'user_id')
class TechnologySerializer(serializers.ModelSerializer):
user_id = RelayIdField()
profile = TechnologyProfileSerializer(many=False)
class Meta:
model = Technology
fields = '__all__'
class TechnologyStackSerializer(serializers.ModelSerializer):
technologies = TechnologySerializer(many=True)
class Meta:
model = TechnologyStack
read_only_fields = ('id',)
fields = '__all__'