Мой вопрос прост: в приложении Django у меня есть таблица Users
и таблица StatusUpdates
. В таблице StatusUpdates
у меня есть столбец user
, который является внешним ключом, указывающим на Users
. Как я могу сделать поиск выразить что-то вроде:Django: Как фильтровать внутреннее соединение на основе свойств второй таблицы?
users.filter(latest_status_update.text__contains='Hello')
Edit:
Пожалуйста, простите мое отсутствие ясности. Запрос, который я хотел бы сделать, это что-то вроде «Дайте мне всех пользователей, чье обновление содержит текст« hello ». В Django коде, я хотел бы сделать следующее (что на самом деле неэффективно и некрасиво):
hello_users = []
for user in User.objects.all():
latest_status_update = StatusUpdate.objects.filter(user=user).order_by('-creation_date')[0]
if latest_status_update.text.contains('Hello'):
hello_users.append(user)
return hello_users
Edit 2:
Я уже нашел решение, но так как я был задан вопрос, здесь являются важные части моих моделей:
class User(models.Model):
...
class StatusUpdate(models.Model):
user = models.ForeignKey(User)
text = models.CharField(max_length=140)
creation_date = models.DateTimeField(auto_now_add=True, editable=False)
....
Спасибо за ваш ответ. Я уточнил вопрос, чтобы быть более ясным. – daveslab