Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检索对象_Python_Django_Django Rest Framework - Fatal编程技术网

Python 检索对象

Python 检索对象,python,django,django-rest-framework,Python,Django,Django Rest Framework,我做了一个GET函数,它将检索帖子,并且只对特定用户及其好友列表可用。为了部分实现这一点,我开发了一个原始查询以获得所需的输出,不知何故,它对我来说运行良好 现在,我试图学习在django中进行查询而不实现原始查询,因此我试图最大化django ORM,而不使用原始查询,但我有点结巴,一直想知道如何才能使我的查询集在不使用原始查询的情况下工作 这是我的原始查询: FeedMedia.objects.raw("""SELECT DISTINCT feed_media.*

我做了一个GET函数,它将检索帖子,并且只对特定用户及其好友列表可用。为了部分实现这一点,我开发了一个原始查询以获得所需的输出,不知何故,它对我来说运行良好

现在,我试图学习在django中进行查询而不实现原始查询,因此我试图最大化django ORM,而不使用原始查询,但我有点结巴,一直想知道如何才能使我的查询集在不使用原始查询的情况下工作

这是我的原始查询:

 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友谊

你能添加你的模型吗?对不起,我忘了,等等,我会包括在内。你能添加你的模型吗?对不起,我忘了,等等,我会包括在内。