Django Admin:Class Media
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django Admin:Class Media相关的知识,希望对你有一定的参考价值。
我有一个类媒体如下
class helloAdmin(admin.ModelAdmin):
class Media:
js = ['choice.js']
admin.site.register(hello,helloAdmin)
staticfiles应用程序将STATIC_URL
添加到媒体路径。但是我想要MEDIA_URL
而不是STATIC_URL
而且STATIC_URL
不是空的。如何才能做到这一点?
答案
您可以使用以下设置实现此目的:
import os
CURRENT_PATH = os.path.abspath((os.path.dirname(__file__)))
MEDIA_ROOT = os.path.join(CURRENT_PATH, 'uploads')
MEDIA_URL = '/site_media/'
urls.py
from django.conf import settings
urlpatterns += patterns('',
url(r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
)
admin.py
class helloAdmin(admin.ModelAdmin):
class Media:
js = ['/site_media/choice.js']
admin.site.register(hello,helloAdmin)
建议不要使用MEDIA_URL
来提供静态文件。根据django文档,当MEDIA_URL
不为空时,STATIC_URL
将不会被引用为媒体文件。请参阅this part of documentation。
所以我建议你使用以下设置:
STATIC_ROOT = 'static/'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(CURRENT_PATH, 'media'),
)
admin.py
class helloAdmin(admin.ModelAdmin):
class Media:
js = ['choice.js']
admin.site.register(hello,helloAdmin)
以上是关于Django Admin:Class Media的主要内容,如果未能解决你的问题,请参考以下文章
Django Admin 通过 apache 破坏了 CSS 链接,但在 runserver 模式下工作
Media类中的autocomplete_fields和JS有啥联系?