【问题标题】:How to traverse a list of a user's followers, and each of the follower's followers in the template?如何遍历一个用户的关注者列表,以及模板中每个关注者的关注者?
【发布时间】:2021-02-25 18:49:57
【问题描述】:

我第二次问这个问题是因为上次我没有得到这个问题的正确答案。嗯,我认为很难解释我真正想要做的事情,但让我试着简要解释一下,以便你们更好地理解。

.

在一张图片中,您可以看到关注者列表,我们还可以看到关注者列表和每个关注者的关注者。我想运行这种查询。我正在尝试使用以下代码

views.py  
   def get_context_data(self, *args, **kwargs):
        context = super(FollowerView,self).get_context_data(*args, **kwargs)
        user = context['user']
        user_com = User.objects.get(username=user)
        myfollowers = user_com.is_following.all()
        
        followers_Array =[]
        followerings_Array =[]
        
        for target_list in myfollowers:
            user_obj = User.objects.get(username=target_list)

            followers_obj = user_obj.is_following.all()
            print(followers_obj,'name o  ki line')
            followerings_Array.append(followerings_Array)
            print(followers_obj,user_obj)

            followerings_obj = user_obj.userprofile.follower.all()
            followerings_Array.append(followerings_obj)
            print(followerings_obj,user_obj)
        print(followerings_Array,'arry one one one ')
        context['myfollowers_data']= followers_Array
        context['myfollowerings_data']= followerings_Array
         
        return context

好吧,我在代码中使用了两个数组,但我不想使用它们,现在我无法通过在上下文中返回数组来获得正确的输出。如果数组是不必要的,而不是告诉我其他方式并告诉我如何以我在图片中显示的方式显示数据,我将在此处共享关注者模板,以防我在那里做错了什么。

{% for follower in user.is_following.all %}
                <div class="followers-body">
                 <img class="img-responsive img-circle" src="{{follower.avatar.url}}" alt="">
                 <div class="name-box">
                 
                  <h4>{{follower}}</h4>
                  <span>@{{follower}}</span>
                  <div class="followers-base">
                   <ul class="list-group">
                    <li class="list-group-item full-width">
                     <div class="pull-left" style="margin-right: 20px;">
                     {% if myfollowers_data %}
                     {% for user in myfollowers_data %}
                      <img src="{{user.userprofile.avatar.url}}" alt="" class="img-circle max-w-40 ">
                      {% endfor %}
                      {% endif %}
                      <span> {{myfollowers_data.count}} Followers </span>
                     </div><!--/ pull-left -->
                    </li> 
                    <li class="list-group-item full-width">
                     <div class="pull-left">
                       {% for usr in myfollowerings_data %}
                      <img src="{{usr.userprofile.avatar.url}}" alt="" class="img-circle max-w-40 ">
                      {% endfor %}
                      <span> {{myfollowerings_data|length}}  Following </span>
                     </div><!--/ pull-right -->
                    </li><!--/ list-group-item -->                     
                   </ul>
                  </div><!--/ followers-base -->
                 </div><!--/ name-box -->
                 <span><a href="#" class="kafe-btn kafe-btn-mint-small"> Follow</a></span>
                </div><!--/ followers-body -->
                {% endfor %}

models.py
class UserProfile(models.Model):

    user = models.OneToOneField(User, on_delete=models.CASCADE)
    follower = models.ManyToManyField(User, related_name ='is_following',blank=True,)
    close_friends = models.ManyToManyField(User,related_name='my_close_friends', blank=True)
    rank = models.ManyToManyField(Rank, related_name='rank', default='Newbie', blank=True)

    avatar = models.ImageField(("Avatar"), upload_to='displays', default = '1.jpg',height_field=None, width_field=None, max_length=None,blank = True)
    create_date = models.DateField(auto_now_add=True,null=True)
        
    @property
    def email_address(self):
        return self.user.email

   
    objects = ProfileManager()

    def __str__(self):
        return f'{self.user.username}'

    def get_absolute_url(self):
        return reverse("profiles:final_detail", kwargs={"username": self.user.username})

如果需要的代码多于在评论会话中告诉我。我会用这些信息更新我的问题。

【问题讨论】:

  • 你能分享你的模型结构吗?
  • 检查我的问题,我刚刚更新了我的问题并添加了模型
  • 所以你想遍历一个用户的关注者列表,以及模板中的每个关注者的关注者?是吗?
  • 是的,就像我在图片中显示的那样
  • 每个关注者的关注者和关注者也是如此

标签: django django-models django-rest-framework django-views django-forms


【解决方案1】:

好的,这一切都应该可以通过模板实现:

模板.html:

<!-- users followers -->
{% for follower1 in user.is_following.all %}
  <img src="{{ follower1.avatar.url }}"/>

  <!-- followers followers -->
  {% for follower2 in follower1.is_following.all %}
    <img src="{{ follower2.avatar.url }}"/>
    ...

  {% endfor %}
{% endfor %}

【讨论】:

  • follower.my_followers.all 在模板上没有返回任何内容。
  • 好吧,我只是在重复您的代码 - 但看起来您只是将该字段称为 follower,所以 follower.follower.all 应该可以工作 - 请参阅我的编辑。
  • 什么都没有出现 - 或者只是第二个循环不起作用?
  • 什么都不打印
  • 我有一个类型 - 我现在修好了 - 想再检查一次吗?
猜你喜欢
  • 1970-01-01
  • 2019-02-26
  • 1970-01-01
  • 2016-11-23
  • 2012-07-20
  • 1970-01-01
  • 2018-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多