django的media
标记是否与static
和url
类似,以及如何设置?
{% static 'styles/boo.css' %}
{% url 'some_app:some_name' %}
Is this possible: {% media 'what here' %}?
如何设置?
答案 0 :(得分:23)
没有媒体模板标签。
设置Exception in thread "main" java.lang.UnsatisfiedLinkError:Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\git\z3\build\libz3java.dll: The operating system cannot run %1
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1938)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1854)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at com.microsoft.z3.Native.<clinit>(Native.java:14)
at com.microsoft.z3.Global.ToggleWarningMessages(Global.java:86)
at JavaExample.main(JavaExample.java:2347)
和MEDIA_ROOT
后,您可以通过引用其MEDIA_URL
属性在模板中使用媒体文件。
例如:
url
然后在你的模板中:
class Foo(models.Model):
image = models.ImageField(
...
)
另请查看有关how to access media files的文档。
答案 1 :(得分:13)
解释设置方式in the docs:您必须在设置中设置MEDIA_ROOT
和MEDIA_URL
,并将MEDIA_URL
添加到urls.py
}}
答案 2 :(得分:3)
{% get_media_prefix %}和{{MEDIA_URL}} via context processor都是你问的好方法。
话虽如此,如果您真正想要实现的是呈现上传的媒体文件(如图像)的链接,那么有更好的方法。
型号:
class Company(models.Model):
logo = models.ImageField()
@property
def logo_url(self):
if self.logo and hasattr(self.logo, 'url'):
return self.logo.url
模板:
<img src="{{company.logo_url}}"/>
@property的原因是您希望避免ImageField不包含图像的情况。在这种情况下,直接在模板中访问company.logo.url
将导致异常。
这实际上是Django中一个长期存在的问题:https://code.djangoproject.com/ticket/13327
答案 3 :(得分:1)
对于媒体文件,我使用django-imagekit
基本用途:
from django.db import models
from imagekit.models import ProcessedImageField
from imagekit.processors import ResizeToFill
models.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 %}