【发布时间】:2014-04-24 10:13:29
【问题描述】:
我正在尝试创建一个请求(在 django 中),它将返回一个帖子数组(只有用户的帖子,当前用户正在关注)。 这是我的模型
帖子:
class Post(models.Model):
title = models.CharField("Headline", max_length=100)
body = models.TextField(max_length=1000)
user_id = models.ForeignKey(User)
thumbnail = models.FileField(upload_to=get_upload_file_name, blank=True)
timestamp = models.DateTimeField(auto_now_add=True)
关注/关注者:
class FollowUser(models.Model):
who_id = models.IntegerField()
whom_id = models.IntegerField()
timestamp = models.DateTimeField(auto_now_add=True)
用户:
class UserProfile(models.Model):
user = models.OneToOneField(User, unique=True)
profile_pic = models.FileField(upload_to=get_upload_file_u_name, default='default.png', blank=True)
bio = models.TextField(null=True)
website = models.CharField(blank=True, max_length=100)
location = models.CharField(blank=True, max_length=100)
def __unicode__(self):
return "%s's profile" % self.user
我创建的 SQL 请求:
SELECT * FROM POSTS Where user_id IN (select whom_id from FOLLOWERS Where user_id = 1 )
所以,我尝试将这个 sql 代码翻译成类似 django 的格式,但我没能做到。 主要问题是我无法请求数组。
需要帮助! 谢谢
【问题讨论】:
-
我认为你的 who_id 和 who_id 也应该是 User 模型的外键。这是正确的方法,将使您的查询更容易。
标签: python mysql sql django subquery