Django: Передача переменной из представления в представление через url-ссылку

Я изучаю Django и в рамках проекта пытаюсь сослаться на тему из представления1 под названием "page" (содержащую контент), чтобы передать ее в представление2 под названием "editpage" (где я могу редактировать соответствующую тему).

Я считаю, что один из способов сделать это - через сессии, но учитывая, что мне нужно ссылаться на тему только один раз, когда пользователь хочет отредактировать вид1 - есть ли способ передать тему из вида1 в вид2 без сессий и забыть тему после редактирования?

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

Моя попытка заключалась в том, чтобы url страницы редактирования содержал тему из представления 1, но я не знаю, как передать тему между двумя представлениями.

Приведенный ниже код для page и editpage в urls.py, views.py, page.html и editpage.html:

urls.py

from django.urls import path
from . import views

urlpatterns = [
    path("editpage/<str:topic>", views.editpage, name="editpage"),
    path("<str:topic>", views.page, name="page"),
]

views.py

from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from django.urls import reverse
from django import forms
from . import util

def page(request, topic):
    if util.get_entry(f"{topic}"):
        return render(request, "encyclopedia/page.html", {
            "content": util.get_entry(f"{topic}"), "topic": f"{topic}"
        })
    else:
        return render(request, "encyclopedia/notfound.html")

def editpage(request, topic):
    if request.method == "POST":
        title = request.POST.get("topic")

        # need to pull the title from the previously linked page

    else:
        return render(request, "encyclopedia/editpage.html", {
            "form": NewSubmissionForm()
        })

page.html

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

{% block title %}
    {{ topic }}
{% endblock %}

{% block body %}
    <a href="{% url 'editpage' %}">Edit this page</a><br>
    {{ content }}

{% endblock %}

editpage.html

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

{% block title %}
    Edit Page 
{% endblock %}

{% block body %}
    <h1>Edit page</h1>

    <form action="{% url 'editpage' %}" method="post">
        {% csrf_token %}
        {{ form }}
        <input type="submit" value="submit">    
    </form>


{% endblock %}

Заранее спасибо и благодарю за любую помощь!

Вы должны добавить параметр к вашей ссылке url следующим образом...

    <a href="{% url 'editpage' topic=topic %}">Edit this page</a><br>
Вернуться на верх