Почему я получаю имя '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", {})
Вернуться на верх