在帖子列表中显示用户帖子

时间:2019-11-19 14:33:36

标签: python django

以下方法返回我关注的用户帖子的查询集。

def get_queryset(self, *args, **kwargs):

    # returns the users that i follow
    following_users = self.request.user.profile.get_following() 

    #gets posts of following users
    qs = Tweet.objects.filter(user__in=following_users).order_by("-timestamp") 

    return qs

我也想在此查询集中添加自己的帖子。如何在此查询集中添加自己的用户?

像这样的东西:

def get_queryset(self, *args, **kwargs):

    # returns the users that i follow
    following_users = self.request.user.profile.get_following() 

    following_users.append(self.request.user) # This is not working

    #gets posts of following users
    qs = Tweet.objects.filter(user__in=following_users).order_by("-timestamp") 

    return qs

类似的东西>我应该怎么做?

我是begginer plz的帮助。

2 个答案:

答案 0 :(得分:3)

之所以不起作用,是因为很可能get_following()返回了QuerySet,而不是列表,并且您无法追加到Queryset

很可能只在分离条件下实现:

from django.db.models import Q

def get_queryset(self, *args, **kwargs):
    following_users = self.request.user.profile.get_following()
    return Tweet.objects.filter(
        Q(user__in=following_users) |
        Q(user=self.request.user)
     ).order_by('-timestamp')

答案 1 :(得分:2)

您需要使用Q objects,以便从您所关注的用户那里查找帖子,或者从您自己那里查找

public class MainActivity extends ActionBarActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      Fabric.with(this, new Crashlytics());
      setContentView(R.layout.activity_main);
    }
}