У меня есть функция, в которой я передаю список unique_ids, и в этой функции я получаю набор запросов users_unique_ids следующим образом:
def my_function(unique_ids):
user_unique_ids = models.ThroughTableModel.objects.filter(users_id__in=unique_ids)
# do something
Вот мой ThroughTableModel:
class ThroughTableModel(models.Model):
users = models.ForeignKey(User, to_field='unique_id')
# other fields
Теперь я хочу использовать id вместо unique_id для этого внешнего ключа, но my_function все равно получит unique_ids в качестве аргументов. Как я могу изменить свой фильтр, чтобы получить user_ids
вместо user_unique_ids
? Я подумал, что сначала нужно получить список идентификаторов, а затем передать его в фильтр следующим образом:
def my_function(unique_ids):
list_ids = models.User.objects.filter(unique_id__in=unique_ids).values_list('id')
user_ids = models.ThroughTableModel.objects.filter(users_id__in=list_ids)
# do something
Есть ли лучший способ добиться этого без создания list_ids и непосредственного использования unique_ids в фильтре?