Будучи немного новичком в 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 %}
Надеюсь, это поможет.