Вы можете сделать это так:
class Excercise(models.Model):
title = models.CharField(max_length=100, unique=True)
level = models.ManyToManyField(Level)
def __str__(self):
return '({}) {}'.format(', '.join(self.level.all().values_list('code', flat=True)), self.title[:20])
Потому что вы можете получить доступ к объектам уровня, используя .all()
.
Или, если вы хотите получить доступ только к первому объекту, используйтекак это:
def __str__(self):
elevel = self.level.all().first()
if elevel:
return elevel.code + ')' + self.title[:20]
return self.title[:20]
Для получения дополнительной информации об использовании ManyToMany, пожалуйста, проверьте documentation
.