Невозможно использовать поле 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.