2017-02-06 5 views
0

내 모델의 관리 양식 (예 : 개인 프로필)에 ImageField가 있어야합니다. 나중에이 이미지를보기에 표시하고 싶습니다.Django - ImageField는 개발 서버에서 이미지를 업로드, 저장 및 제공합니다.

urlpatterns = [ 
    url(r'^$', views.index, name="index") 
] 
:

STATIC_URL = '/static/' 
STATIC_ROOT = os.path.join(BASE_DIR, "static") 
MEDIA_URL = '/static/media/' 
MEDIA_ROOT = os.path.join(BASE_DIR,"static/media") 

이 내 응용 프로그램의 URL이 있습니다 : 이것은 내 웹 사이트에 대한 설정에있을 것입니다

class Individual(models.Model): 
    ind_name = models.CharField(max_length=100) 
    ind_photo = models.ImageField(default="default.jpg") 

    def __str__(self): 
     return self.ind_name 

:

는 내가 가지고있는 모델입니다

정적 파일 (예 : CSS, Javascript)을 사용하여 개발 및 프로덕션 환경에서 작동시키는 방법을 알고 있습니다. 하지만 이미지를 얻는 방법에 대한 단서가 없습니다. 나는 Managing static filesDeploying static files을 읽었지 만, 아직 이해가 안갑니다.

위의 코드를 사용하면 이미지가 적절한 폴더 (즉, 내 사이트 수준의 정적/미디어)에 저장됩니다. 하지만 단서가 없다 : 템플릿에 표시하는 방법을

1),

2)는 경우 (내 응용 프로그램의 정적 폴더에 이러한 이미지를 유지

3) 것이 최선인지 2) 관리자가 이미지를 업로드 할 때마다 collectstatic을 실행해야하는지 여부.

내가 불분명하다면 미안하지만이 방법은 내가 생각했던 것보다 더 애매합니다.

답변

0

에 대한 추가 정보를 원하시면

{{obj.ind_photo.url}} 

이미지 업로드 및 개발 기간 동안 제공되는 위해, 나는 즉, 상기 미디어 폴더를 생성 (정적 폴더에서 미디어 폴더를 이동했다 내 프로젝트 폴더의 루트). MicroPyramid에 의해 제안

from django.conf import settings 
from django.conf.urls.static import static 

if settings.DEBUG: 
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

:

그리고 내 주요 urls.py에서

, 나는 추가했다.

<img src="{{ somebody.ind_photo.url }}"> 
0

정적 파일과 미디어 파일을 분리하는 것이 좋습니다. 예, 정적 폴더에 이미지를 저장하는 경우 업로드 할 때 항상 collectstatic을 수행해야합니다. 우리는 다음과 같이 객체로부터 완전한 URL을 얻을 수 있습니다. 위해 파일 https://docs.djangoproject.com/en/1.10/topics/files/

+0

내가 개발 서버에서이이 이미지를 표시 할 수 없습니다 :

의 (a의 검색어에서) 주어진 개인 "사람"을 위해, 내가 사용하는 템플릿에 표시합니다. URL은 올바른 경로이지만 게재되지 않습니다. 또한 관리자가 이미지를 업로드 할 때마다 collectstatic을 실행할 필요가있는 경우 어디에서 이것을 연결해야합니까? 내 모델의 저장 방법은 무엇입니까? – GuitarExtended

+0

일반적으로 개발/프로덕션 환경에서는 웹 서버를 통해 정적 또는 미디어 파일을 제공합니다. 따라서 웹 서버에서 미디어 디렉토리의 경로를 구성해야합니다. – MicroPyramid

+0

프로덕션 환경에서 작동하도록 만들 수 있다고 생각하지만 개발 중에는 테스트해야합니다. 그렇다면 개발 서버를 실행하는 동안 어떻게 이미지를 제공 할 수 있습니까? – GuitarExtended