私は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'), )
これがDjangoでそれを処理するための最良/最も簡単な方法ではないかもしれないことを私は知っていますが、私はそれをこのように学びました、そして私はそれをこのように保ちたいです。
今、私がやりたいのは、1人の人とその友達からすべての投稿を取得することです。今の問題は、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)
)
正確さを保証するものではなく、私が探している結果のアイデアを与えるためだけに。