#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'