Django : передача параметра или контекста с помощью функции redirect и id, закодированного хэшидами

Я новичок и мне нужна ваша помощь! Но, возможно, это сложный вопрос даже для экспертов, кто знает!

Следующий код прекрасно работает для создания таблицы (с использованием формы datepicker для выбора дня таблицы) с домашней страницы, и с ID страницы, закодированной хэшидами в URL, он перенаправляет на URL таблицы, созданной для выбранного дня. Например, когда конкретная таблица создается для определенного дня, выбранного пользователем, страница перенаправляется на http://127.0.0.1:8000/O3GWpmbk5ezJn4KR, где "O3GWpmbk5ezJn4KR" - это один id таблицы, закодированный с помощью hashids, это работает нормально.

Однако я хотел бы передать переменную с redirect(), день, выбранный в datepicker, используемом для создания таблицы, чтобы отобразить дату на html-странице, созданной с помощью таблицы.

Я попробовал использовать обратную функцию для передачи дневной переменной с редиректом, но это не удалось из-за того, что URL в хешированном виде не был распознан обратной функцией (пример сообщения об ошибке, полученного в шелле: django.urls.exceptions.NoReverseMatch: Reverse for '/VvJ4openRe7Az1XP' not found. '/VvJ4openRe7Az1XP' не является действительной функцией представления или именем шаблона.)

У вас есть идеи, чтобы помочь? Буду признателен за любую подсказку !

Заранее спасибо и наилучшие пожелания.

Вот код :

forms.py

class DateInput(forms.DateInput):
    input_type = 'date'

class CreateNewSchedule(forms.ModelForm):
    class Meta:
        model = Table
        fields = '__all__'
        widgets = { 'day': DateInput()
        }

Models.py :

class Table(models.Model):
    day = models.DateField()

    def __str__(self):
        return self.day

urls.py

urlpatterns = [
    path('', views.home, name="home"),
    path("home/", views.home, name="home"),
    path("index/", views.index, name="index"),
    path("<str:id>", views.schedule, name="schedule"),
]

views.py

def home(response):
    if response.method == "POST":
        
        form = CreateNewSchedule(response.POST)
        if response.POST.get("create"):
            if form.is_valid():
                n = form.cleaned_data["day"]
                t, created = Table.objects.get_or_create(day=n)
                return redirect("/%s" %hashids.encode(t.id))
            else:
                return render(response, "main/home.html", {"form":form})
    else:
        form = CreateNewSchedule()
    return render(response, "main/home.html", {"form":form})
Вернуться на верх