django media url tag

¿Tiene django una etiqueta media similar a static y url y cómo configurarlo?

 {% static 'styles/boo.css' %} {% url 'some_app:some_name' %} Is this possible: {% media 'what here' %}? 

¿Cómo configurarlo?

Necesita {% get_media_prefix %} .

La forma de configurarlo se explica en los documentos : debe configurar MEDIA_ROOT y MEDIA_URL en su configuración y agregar MEDIA_URL a su urls.py

No, no hay ninguna etiqueta de plantilla de medios.

Una vez que MEDIA_ROOT configurado MEDIA_ROOT y MEDIA_URL , puede usar un archivo de medios en una plantilla refiriéndose a su atributo url .

Por ejemplo:

 class Foo(models.Model): image = models.ImageField( ... ) 

y luego en su plantilla:

  

También eche un vistazo a los documentos sobre cómo acceder a los archivos multimedia .

{% get_media_prefix%} y {{MEDIA_URL}} a través del procesador de contexto son buenas alternativas para lo que pidas.

Dicho esto, si lo que realmente desea lograr es renderizar un enlace a un archivo multimedia cargado, como una imagen, hay una mejor manera.

Modelo:

 class Company(models.Model): logo = models.ImageField() @property def logo_url(self): if self.logo and hasattr(self.logo, 'url'): return self.logo.url 

Modelo:

  

El motivo de la propiedad @ es que desea evitar los casos en los que ImageField no contiene una imagen. El acceso a company.logo.url directamente en la plantilla causará una excepción en tal caso.

Este es realmente un problema de larga data en Django: https://code.djangoproject.com/ticket/13327

Para archivos multimedia uso django-imagekit
Uso básico:

 from django.db import models from imagekit.models import ProcessedImageField from imagekit.processors import ResizeToFill 

modelos.py

 class Photo(models.Model): owner = models.ForeignKey(Project, on_delete=models.CASCADE) photos = ProcessedImageField(upload_to='pagename/images', processors=[ResizeToFill(900, 600)], format='JPEG', options={'quality': 90}) 

settings.py

 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'imagekit', ] 

.html

 {% load imagekit %} {% thumbnail '100x50' source_file %} 

Lea la documentación: https://pypi.python.org/pypi/django-imagekit