Django как в html создать ссылку href не указывая корень сайта а тольк часть после корня
http://127.0.0.1:8000 -- > как возможно/и возможно ли заменить корень сайта явно не указвая на него, а лишь добавить оставшуюся часть kovach/signal
href="http://127.0.0.1:8000/kovach/signal#" -- исходная ссылка
Link
Ответы (1 шт):
Не совсем понятен вопрос, но ссылки в href указываются по разному, например {% url 'name' %} или {{ name.get_absolute_url }}.
Допустим есть некая модель Post c описанием постов блога... дальше нам надо вывести все посты на странице по адресу http://localhost:8000/lenta/. Пишем views:
from django.shortcuts import render
from django.views.generic import ListView
# Подключаем в urls.py как 'lenta/'
class LentaView(ListView):
# Выводит список всех постов на отдельной странице (например, шаблон blog.html)
def get(self, request):
posts = Post.objects.all()
return render(request, 'blog/blog.html', {'posts': posts})
И подключаем нашу вьюшку в urls.py:
from django.urls import path
from . import views
urlpatterns = [
path('lenta/', views.LentaView.as_view(), name='lenta'),
path('', views.HomeView.as_view(), name='home'), #подключи сначала главную страницу
]
И только потом выводим наш url в href по "некой оставшейся части":
{% extends 'base.html' %} #Наследуемся от базового шаблона, где base.html - базовый шаблон
{% load static %} # Подключаем статику
{% block content %} # Оборачиваем шаблон в блок
<a href="{% url 'lenta' %}">Лента</a>
{% endblock %}
Но перед тем как так делать, надо сначала вывести базовый шаблон, а потом подключать остальные страницы. Теперь по ссылке http://localhost:8000/lenta/ выводятся все посты блога.