Как ссылаться на сериализатор в Django

#django #django-models #django-rest-framework

#джанго #джанго-модели #django-rest-фреймворк

Вопрос:

У меня есть два сериализатора как для моделей продуктов, так и для моделей ингредиентов, я хочу использовать оба отношения на стороне интерфейса. Как продукты в модели ингредиентов (ингредиент.продукты), и я хочу то же самое в модели продукта (продукт.ингредиенты), так как я могу это получить?

Это мой код,

 class IngredientSerializer(serializers.ModelSerializer):  # products = serializers.SerializerMethodField() //this line doesn't work   class Meta:  model = Ingredient  fields = '__all__'  class ProductSerializer(serializers.ModelSerializer):  ingredients = IngredientSerializer(many=True, required=False)   class Meta:  model = Product  fields = '__all__'  

И модальный ингредиент,

 class Ingredient(models.Model):  products = models.ManyToManyField('Product', related_name="ingredients", null=True)  name = models.CharField(max_length=100, blank=True, null=True)  image = models.ImageField(blank=True, null=True)  

Комментарии:

1. # продукты = сериализаторы.SerializerMethodField(). почему это не работает? вы получаете какие-либо ошибки?

Ответ №1:

 class ProductSerializer(serializers.ModelSerializer):  ingredients = IngredientSerializer(many=True, required=False)    class Meta:  model = Product  fields = '..', '..', 'ingredients'