Python 检索对象
我做了一个GET函数,它将检索帖子,并且只对特定用户及其好友列表可用。为了部分实现这一点,我开发了一个原始查询以获得所需的输出,不知何故,它对我来说运行良好 现在,我试图学习在django中进行查询而不实现原始查询,因此我试图最大化django ORM,而不使用原始查询,但我有点结巴,一直想知道如何才能使我的查询集在不使用原始查询的情况下工作 这是我的原始查询:Python 检索对象,python,django,django-rest-framework,Python,Django,Django Rest Framework,我做了一个GET函数,它将检索帖子,并且只对特定用户及其好友列表可用。为了部分实现这一点,我开发了一个原始查询以获得所需的输出,不知何故,它对我来说运行良好 现在,我试图学习在django中进行查询而不实现原始查询,因此我试图最大化django ORM,而不使用原始查询,但我有点结巴,一直想知道如何才能使我的查询集在不使用原始查询的情况下工作 这是我的原始查询: FeedMedia.objects.raw("""SELECT DISTINCT feed_media.*
FeedMedia.objects.raw("""SELECT DISTINCT feed_media.*
FROM feed_media
INNER JOIN feed ON feed_media.feed_id = feed.id
INNER JOIN media ON feed_media.media_id = media.id
INNER JOIN profile ON profile.id = feed.profile_id
INNER JOIN gosam_friend_profile ON gosam_friend_profile.profile_id = feed.profile_id
INNER JOIN friendship_friend ON friendship_friend.id = gosam_friend_profile.gosam_friend_id
WHERE friendship_friend.to_user_id = %(friend)s
OR gosam_friend_profile.profile_id = %(profile)s""",
params={'friend': request.user.pk, 'profile': profile.pk})
FeedMedia模型:
# Junction Table for Feed and Media
class FeedMedia(models.Model):
media = models.ForeignKey(Media, on_delete=models.CASCADE, null=False)
feed = models.ForeignKey(Feed, on_delete=models.CASCADE, null=False)
class Meta:
db_table = 'feed_media'
馈送模式:
class Feed(models.Model):
profile = models.ForeignKey(Profile, on_delete=models.CASCADE, null=False)
message = models.CharField(max_length=200, null=False, unique=False)
type = models.CharField(max_length=50, null=False, unique=False)
category = models.CharField(max_length=50, null=False, unique=False)
priority_level = models.IntegerField(default=0, null=False, unique=False)
origin_location = models.CharField(max_length=100, null=False, unique=False)
created_at = models.DateTimeField(auto_now_add=True)
class Meta:
db_table = 'feed'
GosamFriendProfile模型:
# Junction Table for Gosam Friends and Profile
class GosamFriendProfile(models.Model):
gosam_friend = models.ForeignKey(Friend, on_delete=models.CASCADE, null=False)
profile = models.ForeignKey(Profile, on_delete=models.CASCADE, null=False)
class Meta:
db_table = 'gosam_friend_profile'
- 友谊——朋友属于django友谊