2014-04-23 2 views
1

그래서 두 개의 다른 환경 (하나는 서버 장고, 다른 하나는 정적 파일)을 만들어야하는 webfaction 프로젝트가 있습니다.Django 1.6 이미지 업로드 및 미디어 경로

그래서 관리자 패널에서 이미지를 업로드하면 이미지가 전체 경로와 함께 정의 된 루트에 배치 된 것을 볼 수 있습니다. 내 시야에서 이미지를 반환하면 내 domain.com/full/media/root/path/imagename이 표시됩니다.

이것은 깨진 링크를 생성합니다. mydomain.com/uploads/image_name으로 이동하면 이미지를 볼 수 있습니다. 파일이 있지만 내 링크가 root_url이 아닌 전체 경로를 가리키고 있습니다.

도와 주시겠습니까? 난 정말 내가보기에이 이미지 링크를 해결할 수있는 방법을 이해 해달라고

<img src="{{ MEDIA_URL }}{{ mymodel.my_image }}" alt="{{ name }}" width="150" height="200" /> 

여기 그러나 그들 중 누구도 숨기거나 경로 변경하는 방법에 관해서 정확하게 저를 지시 할 수 없었다 이와 유사한 많은 환자가 이해한다 "업로드"루트 내 설정에서 내 관리자

class Movie(models.Model): 

name = models.CharField(max_length=50) 


def get_file_path(instance, filename): 
    ext = filename.split('.')[-1] 
    filename = "%s.%s" % (uuid.uuid4(), ext) 
    return os.path.join('/home/user/webapps/project/uploads/' , filename) 


my_image = models.ImageField(upload_to = get_file_path, null=True, blank=True) 
def __unicode__(self): 
    return self.name 

에서 잘 작동 내가 가진

:

MEDIA_ROOT = '/home/user/webapps/project/uploads/' 
MEDIA_URL = '/uploads/' 

및 프로젝트 URL :

django.conf.urls 수입 패턴에서

는 포함 django.conf 가져 오기 설정에서 URL 는

from django.contrib import admin 
    admin.autodiscover() 

    urlpatterns = patterns('',  
    url(r'^admin/', include(admin.site.urls)), 
) 


if settings.DEBUG: 
urlpatterns += patterns('', 
(r'^uploads/(?P<path>.*)$', 'django.views.static.serve', { 
'document_root': settings.MEDIA_ROOT})) 

사전에 모두 감사

답변

0

처음에는 이미지 필드를 만들어야하고 그곳에는 원하는 위치를 정의해야합니다.

<img src="{{ mymodel.my_image.url }}" alt="{{ mymodel.name }}" width="150" height="200" /> 
:이 시도 데이터베이스에서 모델 객체를 얻기 후에 이미지를 표시 할 때 템플릿 그 후

class mymodel(models.Model): 
    name = models.CharField(max_length=50) 
    my_image = models.ImageField(blank=True, null=True,upload_to='/home/user/webapps/project/uploads/') 

: t은 이미지를 업로드합니다

1

당신은 사용할 수 있습니다

{{ mymodel.my_image.url }}