Фильтр запроса Django по другому набору данных

У меня есть 2 модели пользователя:

  1. User: Default user model: enter image description here

  2. Account: Custom User model, which is an extension of the defualt user model, as I wanted to add a custom field to it called 'Status'.

enter image description here

Проблема в том, что я хотел отфильтровать данные на основе текущего пользователя, поэтому обычно я делаю что-то вроде:

Account.objects.filter(usernmae = User).values_list('status', flat=True)

Проблема в том, что в наборе данных Account нет имени пользователя, но они оба имеют одинаковый ID.

Я думал сделать что-то вроде этого:

Status = Account.objects.filter(user_id=User.objects.filter(username = user).values_list('id', flat=True)).values_list('status', flat=True)

Но затем я получаю следующую ошибку:

enter image description here

Я представляю, что есть лучший способ сделать это, если вы можете мне помочь.

Основываясь на моем опыте, вы можете просто соединить две таблицы и получить то, что вы хотите. примерно это выглядит так:

result = Account.objects.filter(user__username = user).values_list('status', flat=True)

или вы можете сделать два запроса, если вам это удобно.

found_user_id = User.objects.filter(username = user).values_list('id', flat = True)
result = Account.objects.filter(user_id = found_user_id).values_list('status', flat=True)

надеюсь, это помогло.

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