Как мне получить '12', которая является id
моделью учителя на этом пути из шаблона Django?
http://localhost:8000/editTeacher/12/
Я искалнемного, и я знаю, как получить весь URL, но не знаю, как мне получить его часть.
Я также пытался использовать request.get('id')
, но это не сработало!
Мои urls.py:
urlpatterns = [
path('admin/', admin.site.urls),
path('addTeacher/', addTeacherView, name='add-teacher'),
path('listTeacher/', listTeacherView, name='list-teacher'),
path('teacherIndex/<int:my_id>/', teacherIndexView, name='teacher-index'),
path('deleteTeacher/<int:my_id>/',
deleteTeacherView, name='delete-teacher-view'),
path('editTeacher/<int:my_id>/', editTeacherView, name='edit-teacher'),
path('', homeView, name='home')
]
Мои views.py:
def editTeacherView(request, my_id):
my_instance = Teacher.objects.get(id=my_id)
teacher = TeacherForm(request.POST or None, instance=my_instance)
if teacher.is_valid():
teacher.save()
return redirect('../../listTeacher/')
context = {
'editTeacher': teacher
}
return render(request, 'teacher/editTeacher.html/', context)
А вот этот вид, который я буду использовать, чтобы получить идентификатор учителя из URL и удалить его из базы данных
def deleteTeacherView(request, my_id):
try:
teacher = Teacher.objects.get(id=my_id)
if request.method == 'POST':
teacher.delete()
return redirect('../../listTeacher/')
except Teacher.DoesNotExist:
raise Http404
context = {
'teacherId': teacher
}
return render(request, 'teacher/deleteTeacher.html', context)
Это страница editTeacher.html:
<form method='POST'>
{% csrf_token %}
{{ editTeacher.as_p }}
<input type="submit" value="Save">
<a href="../../deleteTeacher/{{ #grab_id }}/">Delete</a>
</form>