Как прописать относительный путь URL в функции в Джанго проекте?

В Django для прописывания относительных путей URL в функциях используется механизм именованных URL-паттернов.

1. Сначала нужно определить URL-паттерны в файле urls.py вашего Django проекта. Например:

from django.urls import path
from . import views

app_name = 'myapp'

urlpatterns = [
    path('', views.index, name='index'),
    path('about/', views.about, name='about'),
    path('contact/', views.contact, name='contact'),
]

В данном примере определены три URL-паттерна index, about и contact.

2. В функции, где вы хотите использовать относительные пути URL, вы можете использовать функцию reverse для генерации URL по его имени. Например:

from django.shortcuts import render, reverse

def index(request):
    context = {
        'about_url': reverse('myapp:about'),
        'contact_url': reverse('myapp:contact'),
    }
    return render(request, 'index.html', context)

3. Ваш шаблон index.html может выглядеть следующим образом:

<!DOCTYPE html>
<html>
<head>
    <title>My App</title>
</head>
<body>
    <h1>Welcome to my app!</h1>
    
    <p><a href="{{ about_url }}">About</a></p>
    <p><a href="{{ contact_url }}">Contact</a></p>
</body>
</html>

В данном примере ссылки на страницы "About" и "Contact" создаются с помощью соответствующих URL-паттернов, которые были определены в urls.py.

Прописывая относительные пути URL с использованием именованных URL-паттернов в Django, вы можете легко изменять URL-адреса в будущем, не изменяя код во всех местах, где они используются.