[英]Django app url for media
我使用sqllite在本地服務器上的“ test” django項目中為博客應用創建了ImageField模型。
我在settings.py中
MEDIA_ROOT = '/Users/me/Sites/python/djangotut/media/' MEDIA_ROOT_URL = 'http://127.0.0.1:8000/media/images/photos/'
和我的blog / models.py
photo = models.ImageField(upload_to='images/photos/')
但問題是我的blog.urls.py我不知道如何添加網址以與我的模式多數民眾贊成在文檔https://docs.djangoproject.com/en/1.6/howto/static-files/#serving-用戶在開發過程中上傳的文件
from django.conf.urls import url
from django.conf.urls.static import static
from .views import index, post
urlpatterns = [
url(
regex=r'^$',
view=index,
name='blog-index'
),
url(
regex=r'^(?P<slug>[\w\-]+)/$',
view=post,
name='blog-detail'
),
]
另外,我還閱讀了一些有關在分發應用程序時為“生產環境”設置URL的信息。 在這種情況下,我的網址需要什么樣?
更新 。請看一下: https : //docs.djangoproject.com/en/dev/ref/models/fields/ 。
models.py
UPLOAD_PATH = "photos"
photo = models.ImageField(upload_to=UPLOAD_PATH)
settings.py
from path import path
PROJECT_DIR = path(__file__).dirname().parent
MEDIA_ROOT = PROJECT_DIR / 'media'
MEDIA_URL = '/images/'
urls.py
from django.conf import settings
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
我發現我在尋找與您的答案非常相似的東西。 具體來說,設置中的MEDIA_ROOT和MEDIA_URL不是完全相同的網址。
settings.py
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
urls.py
from django.conf.urls import include, url
from django.conf.urls.static import static
from django.conf import settings
from django.contrib import admin
admin.autodiscover()
urlpatterns = [
url(r'^polls/', include('polls.urls')),
url(r'^newsletter/', include('newsletter.urls')),
url(r'^blog/', include('blog.urls')),
url(r'^admin/', include(admin.site.urls))
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
models.py保持不變。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.