URL-адреса Django не работают должным образом в шаблоне

Я делаю сайт социальной сети, где пользователь может публиковать сообщения и ставить лайки. В одном из моих шаблонов изображение сердечка (которое показывает, понравился пост или нет) не загружается из-за неправильного пути: вот неправильный путь: other_profile/static/network/nolike.png. Должно быть: static/network/nolike.png. other_profile - это имя и путь моего шаблона. То же самое происходит и в случае других вызовов API на моем сайте. URL не должен начинаться с other_profile. И это происходит только на HTML-странице other_profile. Код:

urls.py

from django.urls import path

from . import views

urlpatterns = [
    path("", views.index, name="index"),
    path("profile", views.profile, name="profile"),
    path("login", views.login_view, name="login"),
    path("logout", views.logout_view, name="logout"),
    path("register", views.register, name="register"),
    path("Post/<str:post_id>", views.likes, name="likes"),
    path("follows/<str:user_id>", views.follows, name="follows"),
    path("following", views.following, name="following"),
    path("other_profile/<str:user_id>", views.other_profile, name="other_profile")
]

views.py snippet

import json
from urllib.request import Request
from django.contrib.auth import authenticate, login, logout
from django.db import IntegrityError
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import redirect, render
from django.urls import reverse
from .forms import NewPostForm, likeForm, followForm
from .models import User, Post, Likes, Follows
from django.contrib.auth.decorators import login_required
from django.http import JsonResponse
from django.core.exceptions import ObjectDoesNotExist
from datetime import datetime


def other_profile(request, user_id):
    followform = followForm(request.POST or None)
    if request.method == "POST":
        try:
            Follows.objects.filter(following__in=[user_id]).get(following=request.user).delete()
        except Follows.DoesNotExist:
            if followform.is_valid():
                follows = followform.save(commit=False)
                follows.user = User.objects.get(id=user_id)
                follows.save()
                follows.following.add(request.user)
    posts =  Post.objects.filter(user = user_id).order_by('-date')
    return render(request, "network/otherprofile.html", {
    "posts":posts, "followform":followform})

otherprofile.html

{% extends "network/layout.html" %}

{% block body %}
    TODO
    {% if user.is_authenticated %}
    <form method="POST">{% csrf_token %}
    {{ followform }}
    <button id="follow">Follow</button>
    </form>
    <div id="posts">
        {% for post in posts %}
        <a href="{% url 'other_profile' post.user.id %}">{{ post.user.username }}</a>
        <div class="name" id = "{{ post.user.id }}"><div>{{ post.date }}</div>{{ post.post }}</div>
        <div id ="heart"></div>
        {% endfor %}
        </div>
        {% endif %}
    <script>
    document.querySelector("#follow").addEventListener('click', () => {
     var requestfollow = new Request(
        `follows/${document.querySelector(".name").id}`,
        {
            method: 'POST',
        }
    );

        fetch(requestfollow).then((response) => response.json()).then((data) => {
        if (data.user_id == post.user.id) {
            document.querySelector("#follow").innerHTML="Unfollow"
    }})})
    </script>
{% endblock %}

У меня также есть js файл в статических файлах. Если это необходимо, дайте мне знать. Помощь будет высоко оценена!

heart.src = "/static/network/like.png"

с косой чертой "/" в начале. Или лучше:

heart.src = "{% static 'network/like.png' %}"

Способ работы django со статическими файлами заключается в использовании тега static

{% static 'network/nolike.png' %}

но, пожалуйста, не забудьте настроить статические параметры в settings.py https://docs.djangoproject.com/en/4.0/howto/static-files/

Вернуться на верх