Как в django решить обратную ошибку при копировании текста из строки html-таблицы и попытке записать его в текстовый файл?

У меня есть приложение django со страницей, которая показывает таблицу данных с текстовыми строками, заполненными из модели. Каждая строка - это url сайта. Мне нужно иметь возможность нажать на любую из этих строк и записать строку url в текстовый файл. То, что у меня есть на данный момент, приводит к ошибке 'reverse', как только сервер пытается загрузить домашнюю страницу.

Вот модель:

class Environment(models.Model):
url = models.CharField(max_length = 250, null=True, 
blank=True)

def __str__(self):
    return self.url

Вот представление для главной страницы, которое отображает список урлов, заполненных из модели:

def home(request):
    envs = Environment.objects.all()
    f = open('environment.txt', 'r')
    file_content = f.read()
    f.close()
    context = {'title':'Home Page',
        'year':datetime.now().year, 'envs':envs, 'file_content':file_content}
    return render(request, 'app/home.html', context)

вот вид для записи текста url в файл:

def write_url_to_file(request, url):
    with open('environment.txt', 'w') as file:
        file.write(url)
        file.close()
    return redirect('app:home')

Вот url.py:

from django.urls import path, reverse
from app import views

app_name = 'app'
urlpatterns = [
    path('', views.home, name='home'),
    path('write-url/<str:url>/', views.write_url_to_file, name='write_url_to_file'),
    path('report/', views.report, name='report'),
    path('extract-and-display/', views.extract_and_display, name='extracted_elements'),
    path('contact/', views.contact, name='contact'),
    path('about/', views.about, name='about'),
    path('smoke_tests/', views.smoke_tests, name='smoke'),
    path('repairs/', views.repairs, name='repairs'),]

Здесь находится тег шаблона. Идея заключается в том, чтобы щелкнуть на url и записать его в текстовый файл:

<table>
<tr>
    <th>Environment</th>
</tr>
{% for env in envs %}
<tr>
    <td><a href="{% url 'app:write_url_to_file' env.url %}">{{ env.url }}</a></td>
</tr>
{% endfor %}

Я пробовал разные вещи, например, изменил шаблон на {% url 'app:write_url_to_file' url=env.url %}, но это все равно приводит к обратной ошибке.

В представлении я также попробовал redirect(reverse('app:home')), но все та же ошибка при загрузке домашней страницы.

Любой совет будет очень признателен

<str:…> matches every character, except the slash, so most URLs will probably not work. Use the <path:…> path converter [Django-doc]:

path(
    'write-url/<path:url>/',
    views.write_url_to_file,
    name='write_url_to_file',
),
Вернуться на верх