id:
перевод:
тип:
пример:
}
]
но получаю ошибку:
Got AttributeError when attempting to get a value for field `transcription` on serializer `DetailInfoSerializer`. The serializer field might be named incorrectly and not match any attribute or key on the `Translation` instance.
Сериалайзер
class WordSerializer(serializers.ModelSerializer):
class Meta:
model = Translation
fields = ('id', 'translation', 'translation_type', 'word_example')
class DetailInfoSerializer(serializers.ModelSerializer):
examples = WordSerializer(many=True, read_only=True)
class Meta:
model = Dictionary
fields = ('word', 'transcription', 'examples')
Вьюшка
class DetailWordView(generics.ListAPIView):
serializer_class = DetailInfoSerializer
queryset = Translation.objects.all()
В чем проблема? Менял модели местами в сериалайзере, но не помогло. Гуглил ошибку, но то что предлагали тоже не помогло
examples = WordSerializer(many=True, read_only=True, source=????)
в source указал '*', теперь другая ошибка вываливается 'DetailWordView' should either include a `queryset attribute, or override the get_queryset() method.`
не надо так '*' - нужно конкретно. что-то типа source='wordmodel__set' или как там у вас...
я видел такую конструкцию, прочел, но не совсем понял что указывать нужно
что перед _set указать надо?
https://docs.djangoproject.com/en/3.2/ref/models/fields/#django.db.models.ForeignKey.related_name
Спасибо, еще раз гляну. Смотрел видос, чел изи без всех этих атрибутов сделал, я подумал, странно, что не работает...
<model_name>_set обычно всегда. или related_name. иначе - никак.
Устарело указывать source в сериалайзере AssertionError: It is redundant to specify `source='' on field 'WordSerializer' in serializer 'ListSerializer', `because it is the same as the field name. Remove the `source keyword argument.`
я про ModelSerializer, про List - может быть, хз
Обсуждают сегодня