Получение ошибки при попытке получить значение поля many to many в django
models.py
class Organisation(models.Model):
"""
Organisation model
"""
org_id = models.AutoField(unique=True, primary_key=True)
org_name = models.CharField(max_length=100)
org_code = models.CharField(max_length=20)
org_mail_id = models.EmailField(max_length=100)
org_phone_number = models.CharField(max_length=20)
org_address = models.JSONField(max_length=500, null=True)
product = models.ManyToManyField(Product, related_name='products')
org_logo = models.ImageField(upload_to='org_logo/')
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
db_table = "organisation_master"
def __str__(self):
return self.org_name
serializers.py
class Organisation_Serializers(serializers.ModelSerializer):
product_name = serializers.CharField(source='product.product_name')
class Meta:
model = Organisation
fields = ('org_id', 'org_name', 'org_address', 'org_phone_number', 'org_mail_id','org_logo','org_code','product','product_name')
Пока я пытаюсь получить значение названия продукта, я получаю ошибку "Got AttributeError when attempting to get a value for field product_name
on serializer Organisation_Serializers
.
Поле сериализатора может быть названо неправильно и не соответствовать какому-либо атрибуту или ключу экземпляра Organisation
.
Оригинальный текст исключения был следующим: у объекта 'ManyRelatedManager' нет атрибута 'product_name'.
Можете ли вы, пожалуйста, помочь мне исправить эту проблему.Выкладываю трассировку ошибки.
поле "многие ко многим" не может быть сериализовано в charfield
product_name = serializers.CharField(source='product.product_name')
попробуйте следующее решение Django rest framework serializing many to many field
Сначала создайте сериализатор продукта в: ProductSerializer(serializers.Serializer): product = serializers.CharField(max_length=100)
class Organisation_Serializers(serializers.ModelSerializer):
product_name = ProductSerializer(many=True)
class Meta:
model = Organisation
fields = ('org_id', 'org_name', 'org_address', 'org_phone_number', 'org_mail_id','org_logo','org_code','product','product_name')