2015-09-10 3 views
1

Использование Джанго 1.8 У меня естьисправляющих ImageField ссылка

# model.py 
def signatures_path(instance, filename): 
    return '{}/signatures/{}/{}'\ 
     .format(settings.MEDIA_ROOT, instance.id, filename) 


class Des(models.Model): 
    user = models.OneToOneField(User) 
    signature = models.ImageField(upload_to=signatures_path,\ 
     blank=True, null=True, default=None) 


# settings.py 
MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 
MEDIA_URL = '/media/' 

# urls.py : I've included this pattern 
url(r'^media/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT, 'show_indexes': False}), 

страница админ производит эту ссылку: http://192.168.155.44:8000/home/max/myapp/myapp/media/signatures/1/sig.png который не работает, но я могу просмотреть изображение в http://192.168.155.44:8000/media/signatures/1/sig.png

Как я могу это исправить должным образом?

ответ

1

Вам не нужно указать абсолютный путь:

def signatures_path(instance, filename): 
    return 'signatures/{}/{}'.format(instance.id, filename) 

Django будет использовать MEDIA_ROOT по умолчанию.

Также вам не нужен отдельный url для обслуживания мультимедийных файлов, сервер django dev знает, как с ними справиться. На рабочем сервере, хотя, скажем, если вы будете использовать apache, вам придется настроить apache для работы с носителями и статическими файлами.

+0

Работает отлично. Мне пришлось перезагружать изображения. Благодарю. – max

 Смежные вопросы

  • Нет связанных вопросов^_^