簡體   English   中英

媒體的Django應用網址

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM