Как писать динамические 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-шаблон, однако мне с трудом удалось продвинуться вперед.