【发布时间】:2017-03-07 21:01:01
【问题描述】:
我的问题很简单:在 Django 应用程序中,我有一个表 Users 和一个表 StatusUpdates。在StatusUpdates 表中,我有一列user,它是指向Users 的外键。我该如何进行搜索,表达如下内容:
users.filter(latest_status_update.text__contains='Hello')
编辑:
请原谅我不够清楚。我想做的查询类似于“给我所有 latest status 更新包含文本 '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
编辑 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)
....
【问题讨论】:
标签: django django-models django-queryset