我正在尝试创建一个请求(在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-like,但我无法做到。 主要问题是我无法请求数组。
需要帮助! 感谢
答案 0 :(得分:0)
通过组合应用程序名称和模型的小写名称自动生成表名称。尝试使用<appname>_posts
答案 1 :(得分:0)
试试这个
Post.objects.filter(user_id__in=FollowUser.objects.filter(who_id=1).values_list('whom_id'))
您可以使用views.py
参数
request
中使用此功能
Post.objects.filter(user_id__in=FollowUser.objects.filter(who_id=request.user.id).values_list('whom_id'))