Django / Python HTML推荐朋友

时间:2016-02-23 17:35:57

标签: python html django

所以我试图根据这种情况推荐用户使用社交网络:如果A跟随B而B跟随C,那么我们应该建议A跟随C。

到目前为止,我有这个代码,它显示了共同的朋友,所有用户和关注你的人

<ul>
{% for member in members %}
    <li> <a href="?view={{ member.username }}"> {{ member.username }} </a>
    {% if member in following %}
        {% if member in followers %}
            &harr; is a mutual friend [<a href="?remove={{ member.username }}">drop</a>] </li>  
        {% else %}
            &larr; you are following [<a href="?remove={{ member.username }}">drop</a>] </li>   
        {% endif %}
    {% else %}
        {% if member in followers %}
            &rarr; is following you [<a href="?add={{ member.username }}">recip</a>] </li>
        {% else %}
            [<a href="?add={{ member.username }}">follow</a>] </li>
        {% endif %}
    {% endif %}
{% endfor %}
</ul>

但是我坚持这样做,所以任何帮助都会很棒,谢谢!

1 个答案:

答案 0 :(得分:0)

Django模板不应该通过设计封装过于复杂的逻辑。它们主要是一个设计工具,主要逻辑应该在python中运行。这就是为什么在没有太多箍的情况下,你可以在模板中做什么有明确的限制。

这是一个简单的选项,如何实现您的要求

Organization

在视图中,您运行查询集:

def get_status(user,member):

     ... calculate follower status here ...
     return msg,href,link_text

最后,在模板中:

members = Members.objects.all()
for member in members:
    member.msg,member.href,member.link_text = get_status(member,request.user)

注意:这是一个简单的答案。你应该通过这个逻辑思考,你想把它放在哪里(在模型中可能,作为Member方法),使用reverse for urls等。但是这个想法不是将基本的app规则放在模板中