我做了完全相同的Django管理员datepicker日历和时钟img 和我遇到了同样的问题,但它与django 1.4工作完全正常,但当我更新到django 1.5它给了我这个错误
'adminmedia'不是有效的标记库:找不到模板库adminmedia,尝试过django.templatetags.adminmedia,django.contrib.staticfiles.templatetags.adminmedia,django.contrib.admin.templatetags.adminmedia,django.contrib.humanize.templatetags .adminmedia,jobpost.templatetags.adminmedia,crispy_forms.templatetags.adminmedia,tinymce.templatetags.adminmedia,haystack.templatetags.adminmedia
这是我的代码:
{% load adminmedia %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block content %}
<meta http-equiv="Content-Language" content="en-us" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="/my_admin/jsi18n/"></script>
<script type="text/javascript" src="/media/admin/js/core.js"></script>
{{ form.media }}
<link rel="stylesheet" type="text/css" href="/static/admin/css/forms.css"/>
<link rel="stylesheet" type="text/css" href="/static/admin/css/base.css"/>
<link rel="stylesheet" type="text/css" href="/static/admin/css/global.css"/>
<link rel="stylesheet" type="text/css" href="/static/admin/css/widgets.css"/>
<script type="text/javascript" src="/admin/jsi18n/"></script>
<script type="text/javascript" src="/static/admin/js/core.js"></script>
<script type="text/javascript" src="/static/admin/js/admin/RelatedObjectLookups.js"> </script>
<script type="text/javascript" src="/static/admin/js/jquery.js"></script>
<script type="text/javascript" src="/static/admin/js/jquery.init.js"></script>
<script type="text/javascript" src="/static/admin/js/actions.js"></script>
<script type="text/javascript" src="/static/admin/js/calendar.js"></script> …Run Code Online (Sandbox Code Playgroud) 我在 Django 项目中使用了storages.backends.s3boto.S3BotoStoragefor my 。DEFAULT_FILE_STORAGE
理想情况下,我想FileSystemStorage在单元测试期间使用默认值,或者创建一个临时存储桶,在测试结束时将其删除。
实现这一目标的最佳方法是什么?
我在 django 应用程序中设置了静态和媒体根以及 url,如下所示:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
MEDIA_URL = '/crl/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'config/crl/')
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但我想添加另一个 MEDIA_URL 和 MEDIA_ROOT 来提供/certs/目录中的文件,如下所示:
NEW_MEDIA_URL = '/certs/'
NEW_MEDIA_ROOT = os.path.join(BASE_DIR, 'config/certs/')
Run Code Online (Sandbox Code Playgroud)
有什么办法可以做到吗?我正在使用 Django 2.0.6 和 Python 3.5
django django-templates django-models django-views django-media
我的网站终于可以正常工作了,但媒体文件未提供服务,debug = False我该怎么办?我按照本教程尝试让它与 nginx 一起工作,但它不断损坏并且不提供静态服务等,所以我选择了纯gunicorn和whitenoise。我真的不是部署专家,只是开发专家。请帮忙。媒体文件的安全性不是问题,因为只有管理员才能上传它们,而最终用户则不能。具体来说,我需要知道是否是世界末日debug = True只留下媒体文件。或者是否有一种简单的方法可以为他们提供服务debug = False。
到目前为止,我一直在摸索尝试保护Django的媒体文件而没有运气!我只是想让只有管理员用户才能访问媒体文件夹的地方。这是我的Nginx文件。
server {
listen 80;
server_name xxxxxxxxxx;
location = /favicon.ico {access_log off; log_not_found off;}
location /static/ {
alias /home/{site-name}/static_cdn/;
}
location /media/ {
internal;
root /home/{site-name}/;
}
location / {
this is setup and working. Didn't include Code though
}
Run Code Online (Sandbox Code Playgroud)
我的网址文件
urlpatterns = [
url(r'^media/', views.protectedMedia, name="protect_media"),
]
Run Code Online (Sandbox Code Playgroud)
我的看法
def protectedMedia(request):
if request.user.is_staff:
response = HttpResponse()
response['Content-Type'] = ''
response['X-Accel-Redirect'] = request.path
return response
else:
return HttpResponse(status=400)
Run Code Online (Sandbox Code Playgroud)
这将产生404 Not Found Nginx错误。这里有什么公然的错误吗?谢谢!
顺便说一句,我尝试在Nginx设置的根URL末尾添加/ media /。
我正在尝试为 DRF 设置媒体文件路径/图像,但它不起作用,我无法弄清楚原因。
我收到此错误:
serve() got an unexpected keyword argument 'documuent_root'
Run Code Online (Sandbox Code Playgroud)
我在 mac 上运行 django 1.11 DRF w/python 3.6。
我已经将设置 url 移动到顶级,为什么通过这个链接的方式所以我更近了一步,尽管我仍然无法弄清楚为什么我的链接在我点击它们时显示 404。
设置.py
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'src')
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
CORS_ORIGIN_WHITELIST = 'localhost:3000', #whitelists the localhost to run
Run Code Online (Sandbox Code Playgroud)
视图.py
from accounts.api.permissions import IsOwnerOrReadOnly
from rest_framework import generics, mixins, permissions, viewsets
from books.models import Books
from books.api.serializers import BooksSerializer
class BookViewSet(viewsets.ModelViewSet):
permission_classes = [permissions.IsAuthenticatedOrReadOnly, IsOwnerOrReadOnly] # authentication_classes = []
serializer_class = …Run Code Online (Sandbox Code Playgroud) django django-urls django-views django-media django-rest-framework
我正在尝试在Django中生成动态文件路径。我想制作一个像这样的文件系统
hierarchy:
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)--user_12 --channel_14 --program 2 --image1.jpg --image2.jpg --program 1 --image1.jpg --image2.jpg --user_14 --channel_13 --program 1 --image1.jpg --image2.jpg
当用户要上传图片时,会将图片上传到相应的程序文件夹。如果没有创建程序文件夹,则会自动创建一个文件夹并存储图片。
我的图像路径将如下所示:media / images / john / johnchannel / birthday / img1.jpg(其中john = user,johnchannel = channel,birthday = program,images是应存储所有图像文件的预创建文件夹)在django中是非常新的。需要紧急帮助。
我正在使用 django 1.6
在我的设置中有这个,效果很好,
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static/'),
)
Run Code Online (Sandbox Code Playgroud)
但当我添加:`MEDIA_ROOT = os.path.join(BASE_DIR, 'media/'),
渲染模板时出现错误:
'tuple' does not support the buffer interface
Run Code Online (Sandbox Code Playgroud)
问题代码: <link href=" {% static 'bootstrap/css/bootstrap.min.css' %} " rel="stylesheet">
这两种设置之间是否存在某种冲突?我想做的就是为用户上传的文件提供服务,我应该将upload_to设置更改为静态目录吗?
有谁以前经历过这个或知道可能是什么问题
感谢任何帮助,谢谢
这正确地提供了媒体文件:
urlpatterns = [
...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Run Code Online (Sandbox Code Playgroud)
这不提供媒体文件:
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [ ... ]
if settings.DEBUG:
urlpatterns + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Run Code Online (Sandbox Code Playgroud)
该文件写道:"这是不适合生产使用!",所以这就是为什么我需要的方式提供服务的媒体文件之前检查DEBUG.我怎样才能做到这一点.为什么这种方法不起作用?
我有一个 Django 博客应用程序,其中在发布博客时,也可以附加并提交文件。
这是views.py代码:
def user_own_blog(request):
if request.method == 'POST' and request.FILES['blog_document']:
title_b = request.POST.get('blog_title')
content_b = request.POST.get('blog_content')
file1 = request.FILES['blog_document']
fs = FileSystemStorage()
document_name = fs.save(file1.name, file1)
uploaded_document_url = fs.url(document_name)
b = Blog(title=title_b, content=content_b, blog_document=uploaded_document_url)
b.save()
return render(request, 'mysite/portfolio.html')
else:
return render(request, 'mysite/blog.html')
Run Code Online (Sandbox Code Playgroud)
这是 MEDIA_ROOT 和 MEDIA_URL 路径名:
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
Run Code Online (Sandbox Code Playgroud)
以下是 mysite 应用程序中 urls.py 的代码:
urlpatterns=[ .....
......
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Run Code Online (Sandbox Code Playgroud)
这是项目结构,其中我需要将媒体文件夹直接存在于Assignment1项目下
当文件上传成功时,它在 /api 中显示如下。
但是正在创建两个媒体路径: /media/media ,如下所示: 我无法找到我可能创建的重复字段。
单击文件链接时:出现 …
我正在使用Django 2.2.x和DRF。
我有一个带有FileField的模型
file = models.FileField(upload_to=get_media_upload_path)
Run Code Online (Sandbox Code Playgroud)
文件正在上传,但在访问时obj.file,它给出了没有的 URLHTTPS
http://example.com/media/image.jpg
Run Code Online (Sandbox Code Playgroud)
我希望它是
https://example.com/media/image.png
Run Code Online (Sandbox Code Playgroud)
重定向已在nginx配置中设置。但我想要带有https.
设置
MEDIA_URL = '/media_/'
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'static_cdn', 'media_root')
Run Code Online (Sandbox Code Playgroud) 好的,我有一个Django 1.10项目.相关设置如下所示:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
MEDIA_ROOT = BASE_DIR + "/media/"
MEDIA_URL = '/media/'
Run Code Online (Sandbox Code Playgroud)
我在本地工作,我可以正确上传图片.但是当我尝试使用模板访问模板时{{ image.image.url }},我得到了404.在终端中我可以看到:
[06/Sep/2016 18:13:43] "GET /media/folder/uploaded_image.jpg HTTP/1.1" 404 4900
Run Code Online (Sandbox Code Playgroud)
但是,如果我查看我的文件夹,文件就在那里,由django正确上传.
django ×13
django-media ×13
django-views ×2
nginx ×2
boto ×1
django-urls ×1
gunicorn ×1
sendfile ×1
ubuntu ×1