小编ces*_*r09的帖子

Django的复杂查询(来自所有朋友的帖子)

我是Python和Django的新手,所以请耐心等待我.

我有以下型号:

class User(models.Model):
   name = models.CharField(max_length = 50)
   ...

class Post(models.Model):
   userBy = models.ForeignKey(User, related_name='post_user')
   userWall = models.ForeignKey(User, related_name='receive_user')
   timestamp = models.DateTimeField()
   post = models.TextField()

class Friend(models.Model):
   user1 = models.ForeignKey(User, related_name='request_user')
   user2 = models.ForeignKey(User, related_name='accept_user')
   isApproved = models.BooleanField()
   class Meta:
      unique_together = (('user1', 'user2'), )
Run Code Online (Sandbox Code Playgroud)

我知道这可能不是用Django处理它的最好/最简单的方法,但我这样学习它并且我想保持这样.

现在,我想做的就是从一个人那里得到所有帖子,这是朋友.现在的问题是如何使用Django过滤器?

我认为在SQL中它看起来像这样:

SELECT p.* FORM Post p, Friend f 
WHERE p.userBy=THEUSER OR (
    (f.user1=THEUSER AND f.user2=p.userBy) OR
    (f.user2=THEUSER AND f.user1=p.userBy)
)
Run Code Online (Sandbox Code Playgroud)

不保证正确性,只是想知道我正在寻找的结果.

python django django-models

6
推荐指数
1
解决办法
481
查看次数

标签 统计

django ×1

django-models ×1

python ×1