Невозможно использовать поле ManyToMany в Django и Postgres

Я работаю над проектом с Django, Postgres. Я напечатал это :

user_test = User.objects.first()
food_test = Food.objects.first()
user.food.add(food_test)

Когда я это напечатаю :

user.food

Я понял :

<django.db.models.fields.related_descriptors.create_forward_many_to_many_manager.<locals>.ManyRelatedManager object at 0x7471bd30>

Тогда если я напечатаю это :

user.food.name

Я понял :

AttributeError: 'ManyRelatedManager' object has no attribute 'name'

Если имя поля существует.

Можете ли вы мне помочь?

Большое спасибо!

EDIT : вот моя модель :

class Food(models.Model):
    name = models.CharField(max_length=1000, default="default", null=True)

    def __str__(self):
        return self.name

class User(models.Model):
    food = models.ManyToManyField(Food)
    first = models.CharField(max_length=1000, default="default", null=True)
    
    def __str__(self):
        return self.first
  

Отношения М2М означают - у вас много объектов.

user.food.name получить атрибут name от менеджера M2M.

Возможно, вы имеете в виду user.food.all().name - этот код получает attrbute name из Queryset.

Конечно, я понимаю. Вы хотите user.food.first().name - это получить name первого продукта, если он существует, или снова исключение, если foodQueryset содержит Nothing.

Вернуться на верх