#javascript #django #django-views #python-requests #fetch
#javascript #django #django-представления #python-запросы #извлечение
Вопрос:
Как я могу перехватить и обработать произвольный запрос в представлении Django?
Например:
def index(request):
template_name = 'index.html'
users = User.objects.all()
return render(request, template_name, {'users': users})
Параметр запроса здесь отвечает только за загрузку индексной страницы, я прав? Но как мне обработать произвольный запрос из интерфейса, например, мое представление получило данные из базы данных. Мне нужно перенести его во внешнюю часть моего приложения. Как я могу это сделать? Без использования контекста.
Запрос от JS:
fetch('index.html', {
method: 'GET',
}).then(response => response.json()).then(data => console.log(data))
Ответ №1:
Вы можете использовать request.session .
Например:
def index(request):
template_name = 'index.html'
users = User.objects.all()
request.session["users"] = users #add users list to request.session dict.
return render(request, template_name)
def alluser(request):
template_name = 'profile.html'
if request.session["users"]:
return render(request, template_name)
else:
return redirect('/index')
Сначала вам нужно перейти на страницу представлений, извлечь всех пользователей из базы данных один раз и распечатать их в «request.session». Затем вы можете отобразить эту информацию на любой странице с помощью «request.session».
При входе на страницу alluser вы можете отображать информацию о пользователях с помощью {{request.session.users}}