Как писать динамические URL Django для получения данных и передачи их в представление для обработки

Итак, я пишу простой сайт на Django, с некоторыми базовыми функциями CRUD. Всего у сайта 7 основных моделей.

  • Контактная информация

  • Личные данные

  • Детали мобильного провайдера

  • Подробности о поставщике телевидения

  • Подробная информация о провайдере широкополосного доступа

  • Сведения об интернет-провайдере

  • Согласие пользователя

Как я написал сайт, я создал URL путь для каждой модели, каждая с действием Create, Update и Delete (см. фрагмент ниже)

    path('addcontactdetails', views.addContactDetail, name='addcontactdetails'),
    path('updatecontactdetails', views.updateContactDetail, name='updatecontactdetails'),
    path('deletecontactdetails', views.deleteContactDetail, name='deletecontactdetails'),

Для каждого пути URL я создал соответствующие представления для обработки запросов (см. ниже фрагмент из представления addContactDetail).

@login_required(login_url='login')
def addContactDetail(request):
    data_to_capture = 'Contact Details'
    form = ContactDetailForm()

    if request.method == 'POST':
        form = ContactDetailForm(request.POST)
        current_user = request.user

        ContactDetail.objects.create(
            user = current_user,
            user_email = request.POST.get('user_email'),
            mobile_phone_no = request.POST.get('mobile_phone_no'),
            door_no_or_house_name = request.POST.get('door_no_or_house_name'),
            address_line_1 = request.POST.get('address_line_1'),
            address_line_2 = request.POST.get('address_line_2'),
            town_or_city = request.POST.get('town_or_city'),
            post_code = request.POST.get('post_code'),
        )
        return redirect('profile')

    context = {
        'data_to_capture': data_to_capture,
        'form': form
    }
    return render(request, 'base/capture_data.html', context)

Мне интересно, существует ли более сложный способ написания путей URL, чтобы уменьшить количество необходимых путей URL и ограничить количество просмотров. Я бы подумал, что существует способ захвата данных из URL-пути, а затем динамической передачи соответствующих данных в HTML-шаблон, но я не уверен, как этого добиться.

Спасибо, что нашли время прочитать мой вопрос, и благодарю за любую помощь или совет, который может быть предложен! :)

Я попытался вернуться к голым костям и попытался захватить данные из пути URL и передать их в представление, чтобы затем передать данные в HTML-шаблон, однако мне с трудом удалось продвинуться вперед.

Вернуться на верх