Джанго просто-друзья Templte помочь! - PullRequest
0 голосов
/ 28 марта 2011

Я пытался делать это вечно, кажется.

Я не понимаю, что вставлять в шаблоны, и не могу найти справки.

  1. Страница моего профиля нужен список друзей

что-то вроде:

{% for friends in Friendship.objects%}

<li>are_friends: {{ friends.are_friends.user.username}}</li>
<li>is_invited: {{ friends.is_invited}}</li>

{% endfor %}

Ответы [ 3 ]

1 голос
/ 26 мая 2012

Будучи немного новичком в Django и программировании в целом, мне потребовались годы, чтобы потренироваться, но в итоге я пришел туда, так что я поделюсь своим делом. Прежде всего, хотя код может быть не совсем тем, что вам нужно, но вы поймете идею. Я также, возможно, допустил некоторые ошибки здесь, или есть лучший способ сделать это, поэтому не думайте, что это самый правильный способ, но он работает.

Прежде всего, я разделил свой код на два шаблона. Один для того, когда я нахожусь на странице профиля другого пользователя, и один для того, когда я нахожусь на моей странице «Управление моими друзьями». Пожалуйста, помните, что это в основном чистый шаблонный код, и к нему не применены стили. Это зависит от вас.

{% if user|friends %}
    {% with user|friends as list %}
        Friends List
        {% for m in list %}
            {{ m }}
        {% endfor %}
    {% endwith %}
{% else %}
   Search for Friends
{% endif %}


{% if user|friendshiprequests %}
    {% with user|friendshiprequests as list %}
        {% if list.received %}
            Friendship Requests Received                
            {% for m in list.received %}
                    {{ m }}
                        <a href="{% url friendship_accept m.from_user %}">Accept Request</a>
                        <a href="{% url friendship_decline m.from_user %}">Decline Request</a>
                        <a href="{% url user_block m.from_user %}">Block User</a>
            {% endfor %}
        {% endif %}

        {% if list.sent %}
            Pending Friend Requests Sent by You
            {% for m in list.sent %}
                {% if not user|isblockedby:m.to_user %}
                    {{ m.to_user }}
                        <a href="{% url friendship_cancel m.to_user %}">Cancel Request</a>
                {% endif %}
            {% endfor %}
        {% endif %}
    {% endwith %}
 {% endif %}

  {% if user|blocks %}
      {% with user|blocks as list %}
          {% if list.applied %}
              List of Blocked Users
              {% for m in list.applied %}
                  {{ m }}
              {% endfor %}
          {% endif %}
      {% endwith %}
  {% endif %}

Для страницы профиля другого пользователя у меня есть следующий код. Bear i nmind У меня есть приложение профиля, которое передает имя пользователя профиля, на который я смотрю и с которым хочу взаимодействовать. Возможно, вам придется найти другой способ сделать это.

    {% if not user == profile.user %}
        {% if not user|isblockedby:profile.user %}
            {% if not profile.user|isblockedby:user %}
                {% if not user|isfriendswith:profile.user %}
                        {% if not profile.user|isfriendshiprequest:user %}
                            {% if user|isfriendshiprequest:profile.user %}
                                You have already sent a friend request                                    
                                    <a href="{% url friendship_cancel profile.user %}">Cancel Friend Request</a>                                   
                            {% else %}                                   
                                    <a href="{% url friendship_request profile.user %}">Send Friend Request</a>                                  
                                                                        <a href="{% url user_block profile.user %}">Block User</a>                                   
                            {% endif %}
                        {% else %}
                        {% endif %}
                {% else %}
                    You and {{ profile.user}} are friends                       
                        <a href="{% url friendship_delete profile.user %}">trans Unfriend</a>                                                
                        <a href="{% url user_block profile.user %}">Block User</a>                        
                {% endif %}
            {% else %}
                You have blocked this User                    
                    <a href="{% url user_unblock profile.user %}">Unblock User</a>                    
            {% endif %}
        {% else %}
            You have been blocked by this user
        {% endif %}
    {% endif %}

    {% if not user == profile.user %}
        {% if not user|isblockedby:profile.user %}
            {% if not profile.user|isblockedby:user %}
                {% if not user|isfriendswith:profile.user %}
                    {% if profile.user|isfriendshiprequest:user %}
                            Accept Friendship Request                                
                                <a href="{% url friendship_accept profile.user %}">Accept Request</a>                                
                                <a href="{% url friendship_decline profile.user %}">Decline Request</a>                               
                                <a href="{% url user_block profile.user %}">Block User</a>
                    {% endif %}
                {% endif %}
            {% endif %}
        {% endif %}
    {% endif %}

Надеюсь, это поможет.

0 голосов
/ 25 августа 2011

Давайте немного проанализируем код:

Friendship.objects вернет менеджер по умолчанию для Friendship модели.В этот момент вы, вероятно, захотите вызвать один из методов, которые возвращают итератор для этого менеджера.Например, следующий код шаблона перебирает all Friendship's:

{% for friendship in Friendship.objects.all %}

Но это не имеет большого смысла.Вы, вероятно, хотите перебрать Friendship для конкретного пользователяСледующий код перебирает друзей активного пользователя:

{% for friendship in user.friendship.friends.all %}
  {{ friendship.user.username }}
{% endfor %}

Приведенный выше код может не работать.Я не могу вспомнить почему.Но уже есть тег, который дает вам друзей определенного пользователя:

{% load friends_tags %}
{% friends_of user %}
{% for friend in friends %}
  {{ friend.username }}
{% endfor %}

Rant Section

Кажется, что приложение невозможно использовать без чтения источника.Это совсем не хорошо.Автор этого приложения должен был написать лучшую документацию.Я должен выделить время для работы над этими вопросами.

0 голосов
/ 28 марта 2011

Это руководство должно стать хорошим началом:

http://docs.djangoproject.com/en/dev/ref/templates/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...