@emeraldsinner

Как создать query set с фильтром по дочерней таблице?

Всем привет, суть такова, на проекте пишу поиск, требуется переписать мой sql запрос под query set, есть 2 таблицы, одна описана в моделях(Profiles), вторая нет(profiles_groups), вторая по foreign key ссылается на первую, поля второй:
id, profile_id(foreign key к id первой), group_id. Требуется достать group_id, переписать sql запросы SELECT * FROM Profiles WHERE id = (SELECT profiles_id FROM profiles_groups WHERE group_id = 1) и SELECT group_id FROM profiles_groups WHERE profiles_id = '%s'" %request.user.id под query set, может кто помочь, или хотя б направить в правильном направлении? Спасибо
  • Вопрос задан
  • 2480 просмотров
Пригласить эксперта
Ответы на вопрос 2
dizballanze
@dizballanze
Software developer at Yandex
Привет!
Вам нужно чтобы была вторая модель для таблицы profiles_groups, тогда можно сделать что-то вроде:
Profiles.objects.filter(profiles_groups__group_id=1)
Ответ написан
winordie
@winordie
Лучшая документация -- исходники
Таблицу менять не нужно. Просто создаешь модель, делаешь makemigrations, migrate и все.
В модели описываешь таблицу:
class MyModel(models.Model):
    id = models.IntegerField(primary_key=True)
    name = models.TextField(db_column='name_in_your_db', blank=True)
    info = models.TextField(db_column='info_in_your_db', blank=True)
    ...

    class Meta:
        managed = False
        db_table = 'profiles_groups'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы