Estoy siguiendo un tutorial de Django y he llegado al punto de usar return render y actualmente mi views.py se ve así:
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", {})Recibo un error cuando intento ir a mi página de inicio:
views.py", line 9, in home_view return render(request, "home.html", {}) NameError: name 'request' is not definedNo estoy seguro de qué está causando esto, ya que, de acuerdo con la solicitud de documentos de Django, es parte del procesamiento que se importa arriba.
request es siempre el primer parámetro de cualquier vista. En su opinión, su función solo tiene *args y **kwargs , por lo que request será el primer elemento en args . Es mejor hacer explícito el parámetro de request y trabajar con:
# request ↓ def home_view( request , *args, **kwargs): return render(request, "home.html", {}) Dado que probablemente solo use esta vista para patrones de URL sin patrones de URL, probablemente pueda omitir *args y **kwargs :
# ↓ omit *args and **kwargs def home_view( request ): return render(request, "home.html", {})