Лучший способ поиска с помощью поля ManyToMany Django

У меня есть 2 модели, и я хотел выполнить поиск с помощью поля Many to Many в соответствии с моей структуризацией, ниже представлены мои модели :

class User(django_models.AbstractBaseUser, TimeStampedModel,
           django_models.PermissionsMixin):
    """
    User model for the user creation
    """
    uuid = models.UUIDField(unique=True, max_length=500,
                            default=uuid.uuid4,
                            editable=False,
                            db_index=True, blank=False, null=False)
   
    account_types = models.ManyToManyField(AccountTypes,
                                           related_name='account_types')

Затем другая модель AccountTypes :

class AccountTypes(TimeStampedModel, models.Model):
    """
    Account types for the users. e.g Mentors, Mentees, Parents etc.
    """
    uuid = models.UUIDField(unique=True, max_length=500,
                            default=uuid.uuid4,
                            editable=False,
                            db_index=True, blank=False, null=False)
    name = models.CharField(_('Account Name'), max_length=30, blank=False,
                            null=False)

Как найти uuid пользователя с определенным AccountType ?

Моя попытка была такой:

User.objects.get(uuid=uuid, account_types__in=['Mentor'])

Но я получил эту ошибку :

ValueError: Field 'id' expected a number but got 'Mentor'.

Вы должны фильтровать по name из account_types, так:

User.objects.get(uuid=uuid, account_types__name='Mentor')

или если вам нужны все User объекты, которые являются ментором, вы можете работать с:

User.objects.filter(account_types__name='Mentor')
Вернуться на верх