El error typeError: static() got an unexpected keyword argument ‘document_root, puede aparecer, en Django cuando intentamos añadir en nuestro urls.py
+= static(settings.MEDIA_URL, documnet_root=settings.MEDIA_ROOT)
Esta modificación de las urls, la hacemos para decirle a Django, en qué lugar se encuentran nuestros archivos media.
Si nos fijamos en el contenido de nuestro archivo settings.py
, debe aparecer la dirección que indica , dónde guardamos nuestros archivos estáticos y en que lugar nuestros archivos tipo media.
Es algo asi
MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'media') STATIC_URL = '/static/'
Dicho esto, el error ‘TypeError: static() got an unexpected keyword argument ‘document_root‘ puede proceder de diversas fuentes, dos de las que conozco y me resultan más comunes son:
Importar de modo incorrecto la ruta del método static utilizando:
from django.templatetags.static import static
cuando deberiamos importar
from django.conf.urls.static import static
El primero de ellos nos permite manejar archivos estáticos, como css, javascript o imágenes.
El segundo es una una función helper que nos devuelve la url, donde se encuentra un contenido especifico y su estructura es:
static.static(prefix, view=django.views.static.serve, **kwargs)¶
import *
Si, así es. El segundo error es emplear el uso de import *
, que por más que pueda parecer cómodo , me ha traído algún de un dolor de cabeza.
En este articulo pueden ampliar conocimiento sobre sus inconvenientes.
“….El amor siempre empieza soñando y termina en insomnio“
R.Arjona