【发布时间】:2011-01-31 09:53:16
【问题描述】:
我有一个评论/评级网络应用程序,一个 la Digg。我的 django 应用 content 具有以下模型:
class Content(models.Model):
title = models.CharField(max_length=128)
url = models.URLField(max_length=2048)
description = models.TextField(blank=True)
class Recommendation(models.Model):
user = models.ForeignKey(User)
content = models.ForeignKey(Content)
review = models.TextField()
rating = models.PositiveSmallIntegerField()
class Meta:
unique_together = ('user', 'content')
class Subscription(models.Model):
subscriber = models.ForeignKey(User, related_name='subscription_set')
publisher = models.ForeignKey(User, related_name='publication_set')
class Meta:
unique_together = ('subscriber', 'publisher')
我想构建一个页面,其中包含当前用户 (request.user) 订阅的所有用户的所有推荐。
如果我用 SQL 写这个,我相信我最终会得到一个类似于以下的查询:
select content_content.*, content_recommendation.*, auth_user.*
from content_content, content_recommendation, content_subscription, auth_user
where content_content.id = content_recommendation.content_id
and content_recommendation.user_id = content_subscription.publisher_id
and content_subscription.subscriber_id = ?
and auth_user.id = content_subscription.publisher_id;
我将如何使用 Django 的查询 API 来表达这一点?我已阅读文档,但无法理解。
【问题讨论】:
标签: python mysql database django