【问题标题】:Request user posts in django在 django 中请求用户帖子
【发布时间】:2015-02-24 02:55:24
【问题描述】:

我目前正在寻找如何请求经过身份验证的用户的帖子以及他们关注的用户或关注他们的用户的帖子。到目前为止,我已经能够显示关注他们的用户的帖子,但似乎无法显示经过身份验证的用户的帖子

views.py 

    events = post.objects.filter()
    following = request.user.following_set.all().values_list('to_user',
            flat=True)
    events = events.filter(user__in=following)

有什么帮助吗?

【问题讨论】:

    标签: django django-views


    【解决方案1】:

    我看不到您的模型定义,但您需要这样做:

    if request.user.is_authenticated():
       events = request.user.user_posts.filter() # authenticated user posts
    else:
       events = post.objects.filter() # all posts
    

    user_posts 是从 Django 的用户模型到发布模型的 related_name。像这样:

    from django.contrib.auth.models import User
    class Post(models.Model):
       user = models.ForeignKey(User, related_name="user_posts")
       # ...
    

    【讨论】:

      【解决方案2】:

      除非在你看来做类似的事情,否则没有内置的方法

      if request.user.is_authenticated():
          events ...
      else:
          events ...
      

      【讨论】:

        【解决方案3】:
        # Importing LoginRequiredMixin to push the user to log in.
        from django.contrib.auth.mixins import LoginRequiredMixin
        
        # Post Model Importing
        from .models import Post
        
        class Timeline(LoginRequiredMixin, ListView):
             template_name = 'index.html'
        
            def get_context_data(self, **kwargs):
                context = super(Timeline, self).get_context_data(**kwargs)
                context['posts'] = Post.objects.all()
                return context
        

        【讨论】:

          猜你喜欢
          • 2015-01-09
          • 2014-11-16
          • 2016-08-26
          • 1970-01-01
          • 2015-08-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多