Почему я получаю имя 'request' не определено?
Я следую учебнику по Django и дошел до использования return render
и в настоящее время мой views.py выглядит следующим образом:
from django.http import HttpResponse
from django.shortcuts import render
# Create your views here.
def construction_view(*args, **kwargs):
return HttpResponse("<h1> This site is currently being constructed. Please check back later </h1>")
def home_view(*args, **kwargs):
return render(request, "home.html", {})
Я получаю ошибку при попытке перейти на мою домашнюю страницу:
views.py", line 9, in home_view
return render(request, "home.html", {})
NameError: name 'request' is not defined
Не уверен, что это происходит, так как согласно документации Django запрос является частью render, который импортируется выше.
request
всегда является первым параметром любого представления. В вашем представлении у вашей функции есть только *args
и **kwargs
, поэтому request
будет первым элементом в args
. Лучше сделать параметр request
явным и работать с:
# request ↓
def home_view(request, *args, **kwargs):
return render(request, "home.html", {})
Поскольку вы, скорее всего, используете это представление только для шаблонов URL без шаблонов URL, вы, вероятно, можете опустить *args
и **kwargs
:
# ↓ omit *args and **kwargs
def home_view(request):
return render(request, "home.html", {})